Откройте для себя простую, улучшенную конфигурацию PIT и JUnit 5 в Gradle (с gradle-pitest-plugin 1.4.7+).
JUnit 5, несомненно, становится все более популярным в наши дни. Несмотря на то, что есть специальный плагин для PIT для JUnit 5, и он поддерживается годами gradle-pitest-plugin, для этого требовалось добавить несколько строк стандартного кода. Недавно у меня появился [вопрос] (https://github.com/szpak/gradle-pitest-plugin/issues/177), можно ли его упростить. Мне нравится. Вызов принят :-).

Общий подход с ‘buildscript {}’
Сначала взглянем на общий подход с buildscrip {} кода buildscrip {} , который запоминает времена Gradle 0.x:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
|
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-плагином)
Современный вариант с plugins {} должен быть короче:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
|
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 {} теряется из-за необходимости добавления дополнительной зависимости pitest-junit5-plugin используемой gradle-pitest-plugin во время выполнения в buildscript {} — на 10 строк больше. Очень разочаровывает ;-).
Современный улучшенный подход с ‘plugins {}’
и gradle-pitest-plugin 1.4.7+
С только что выпущенным gradle-pitest-plugin 1.4.7 мы можем забыть обо всем шаблоне кода:
|
1
2
3
4
5
6
7
8
9
|
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 в требуемые версии и активирует junit5 как testPlugin используемый PIT. Разве это не выглядит красиво? 🙂
Резюме
В этом коротком посте в блоге я представил, как можно упростить настройку PIT, JUnit 5 и Gradle (-pitest-plugin) с помощью всего лишь нескольких изменений в самом плагине. Все благодаря вопросу Джона Скэнчеллы и идее, которая возникла у меня в голове, как реализовать это умным способом.
Поэтому я призываю вас сообщать (разумные) идеи относительно улучшений и вещей, которые ограничивают вас в проектах, которые вы используете (или, что еще лучше, запрос на извлечение / объединение после первоначального обсуждения с сопровождающим). Может быть, это будет реализовано (принято) для общего блага :-).
|
Смотрите оригинальную статью здесь: PIT, JUnit 5 и Gradle — только с одной дополнительной линией конфигурации Мнения, высказанные участниками Java Code Geeks, являются их собственными. |