如果我在IntelliJ中运行测试类的集合,则使用TestNG运行配置运行246个测试。我只是将此项目与Jenkins挂钩,由于某种原因,Jenkins仅运行了75个测试。
这是99%的测试的组织方式:
package serviceLayer.styx.qa.endpoints;
import org.testng.annotations.Test;
@Test(groups = {"serviceLayer.qa.endpoints"})
public class ExampleTest extends ExampleTestBase {
@Test
public void stackOverflowExample() {
// test something
}
}
这是我通过Jenkins运行的shell命令:
cd“ $ {WORKSPACE}” && mvn -fae -Duser = qa clean -Dtest = serviceLayer.qa.endpoints。*测试surefire-report:report
到目前为止,我已经尝试将group标记添加到每个测试类,并将Jenkins作业从管道作业更改为相反的作业……但仅继续运行75个测试。
注意:詹金斯(Jenkins)并没有忽略测试,就像它们根本没有被认可一样。
以前有人遇到过吗?
答案 0 :(得分:1)
看起来Jenkins在Linux节点上正在运行Maven。这意味着它正在使用sh或bash来解析您的命令行。这意味着您的行在运行之前就被阻塞了。大概没有匹配全局模式-Dtest=serviceLayer.qa.endpoints.*
的文件,因此扩展为空字符串。因此,您正在运行的maven命令行是
mvn -fae -Duser=qa clean test surefire-report:report
大概该命令行将运行75个测试,而其他测试则需要测试定义。
尝试在命令行中转义或引用星号。
cd "${WORKSPACE}" && mvn -fae -Duser=qa clean -Dtest=serviceLayer.qa.endpoints.\* test surefire-report:report