Как включить / исключить теги junit5 в Gradle CMD? - PullRequest
0 голосов
/ 01 марта 2020

Я хочу выполнить теговые тесты JUnit 5, например. только медленные тесты, с gradle.

Я хочу сделать то же самое в maven:

mvn test -Dgroups="slow"

Но что такое эквивалент в gradle? Или есть что-нибудь вообще?

Выполнить все тесты JUnit 5, отмеченные @Tag("slow"). Я знаю, что довольно просто создать отдельную задачу, подобную этой:

tasks.withType(Test::class.java).configureEach {
  useJUnitPlatform() {
    includeTags("slow")
  }
}

Но у меня есть много разных тегов, и я не хочу иметь задачу для каждого отдельного тега. Или, что еще хуже, наличие одной задачи для всех перестановок.

Другая возможность - передать заданные пользователем свойства в задачу, подобную этой:

tasks.withType(Test::class.java).configureEach {
  val includeTagsList = System.getProperty("includeTags", "")!!.split(",")
          .map { it.trim() }
          .filter { it.isNotBlank() }
  if (includeTagsList.isNotEmpty()) {
    includeTags(*includeTagsList.toTypedArray())
  }
}

1 Ответ

0 голосов
/ 03 марта 2020

В последний раз, когда я проверял, у Gradle не было встроенной поддержки для настройки тегов JUnit Platform для включения и исключения тегов через командную строку, поэтому вам придется go при втором подходе.

Но ... нет необходимости разделять, отображать и фильтровать теги: просто используйте выражение тега вместо этого: https://junit.org/junit5/docs/current/user-guide/#running -tests-tag-expression

...