Jenkins为什么不运行我的所有TestNG测试?

时间:2018-07-25 21:17:46

标签: java jenkins testng

如果我在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)并没有忽略测试,就像它们根本没有被认可一样。

以前有人遇到过吗?

1 个答案:

答案 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