【发布时间】:2018-02-08 19:57:39
【问题描述】:
是否可以通过 Gradle 测试任务运行嵌入在 JAR 文件中的 TestNG 测试套件?
我的项目包括 JARed 的 TestNG 测试包,其中包含一个嵌入式 testng.xml 文件,该文件定义了哪些测试应该在 JAR 中运行。在运行 TestNG 测试时,Gradle 是否可以引用这个嵌入的 XML?
从命令行我使用 xmlpathinjar 选项。
【问题讨论】:
是否可以通过 Gradle 测试任务运行嵌入在 JAR 文件中的 TestNG 测试套件?
我的项目包括 JARed 的 TestNG 测试包,其中包含一个嵌入式 testng.xml 文件,该文件定义了哪些测试应该在 JAR 中运行。在运行 TestNG 测试时,Gradle 是否可以引用这个嵌入的 XML?
从命令行我使用 xmlpathinjar 选项。
【问题讨论】:
我认为使用 Gradle TestNG 任务无法完成。我在TestNGOptions 中找不到任何此类支持
而不是使用
test{
useTestNG()
}
您可以尝试在 SO How can I tell Gradle to use my testng.xml file for Test Classes and Ordering? 上浏览此帖子,也可以采用此处详述的方法 https://stackoverflow.com/a/28868416
但是当您使用自定义 Gradle 任务来运行您的 TestNG 测试时,请确保添加对 ExitCodeListener 的引用
这是一个示例
task ('myTask', type: JavaExec) {
main = 'org.testng.TestNG'
classpath = sourceSets.main.runtimeClasspath + sourceSets.test.runtimeClasspath
args = ["-xmlpathinjar", "suites/mysuite.xml", "-listener", "org.testng.TestNG\$ExitCodeListener"]
}
更多关于为什么ExitCodeListener需要被推荐的细节,可以找到here
【讨论】: