如何在gradle cmd中包含/排除junit5标签?

xtermi2

我想执行标记的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())
  }
}
山姆·布兰嫩

我上次检查时,Gradle不具有通过命令行配置JUnit Platform包含和排除标签的内置支持,因此您必须采用第二种方法。

但是...无需拆分,映射和过滤标签:只需使用标签表达式即可https : //junit.org/junit5/docs/current/user-guide/#running-tests-tag-expressions

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章