k66 pit计时功能配置
在Gradle(带有gradle-pitest-plugin 1.4.7+)中发现简单,改进的PIT和JUnit 5配置。
不可否认,如今JUnit 5越来越受欢迎。 虽然为JUnit 5提供了一个专用于PIT的插件,并且gradle-pitest-plugin支持了很多年,但需要添加几行样板代码来实现。 最近,我有一个[问题](https://github.com/szpak/gradle-pitest-plugin/issues/177),如果可以简化的话。 我喜欢 接受挑战 :-)。
使用“ buildscript {}”的通用方法
首先,看看带有buildscrip {}
代码块的通用方法,它记住了Gradle 0.x的时间:
buildscript {
repositories {
mavenCentral()
gradlePluginPortal() //optionally, if any plugin is not available in Maven Central
}
configurations.maybeCreate('pitest')
dependencies {
classpath 'info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.4.6'
pitest 'org.pitest:pitest-junit5-plugin:0.12'
}
}
apply plugin: 'java'
apply plugin: 'info.solidsoft.pitest'
pitest {
testPlugin = 'junit5'
}
仅3条额外的行。 可接受的,但是用于插件配置的buildscript {}
本身有点冗长。
(使用较旧的gradle-pitest-plugin)
带有plugins {}
的现代变体应更短:
buildscript {
repositories {
mavenCentral()
}
configurations.maybeCreate('pitest')
dependencies {
pitest 'org.pitest:pitest-junit5-plugin:0.12'
}
}
plugins {
id 'java'
id 'info.solidsoft.pitest' version '1.4.6'
}
pitest {
testPlugin = 'junit5'
}
不幸的是, plugin {}
块的紧凑语法由于需要在buildscript {}
块中添加运行时pitest-junit5-plugin
使用的额外依赖项pitest-junit5-plugin
而gradle-pitest-plugin
了–额外增加了10行。 非常令人失望;-)。
和gradle-pitest-plugin 1.4.7+
使用刚刚发布的gradle-pitest-plugin
1.4.7,我们可以忘记所有样板代码:
plugins {
id 'java'
id 'info.solidsoft.pitest' version '1.4.7'
}
pitest {
//adds dependency to org.pitest:pitest-junit5-plugin and sets "testPlugin" to "junit5"
junit5PluginVersion = '0.12'
}
仅一行junit5PluginVersion = '0.12'
,它在pitest-junit5-plugin
在所需版本中添加了pitest-junit5-plugin
依赖关系,并将junit5
激活为PIT使用的testPlugin
。 看起来不是很好吗? :-)
摘要
在这篇简短的博客文章中,我介绍了如何通过仅对插件本身进行一些更改就可以简化PIT,JUnit 5和Gradle(-pitest-plugin)的配置。 感谢John Scancella提出的问题,以及我想到如何以智能方式实施它的想法。
因此,我鼓励您报告(明智的)改进建议和限制您使用的项目的想法(或者在与维护人员进行初步讨论后甚至提出更好的合并请求)。 也许它将实现(接受)以实现共同利益:-)。
k66 pit计时功能配置