Jenkins未在构建概述中显示所有已执行的测试/测试结果

时间:2017-03-21 12:39:58

标签: maven selenium jenkins junit

我正在通过Jenkins使用Junit执行我的Selenium WebDriver测试,测试执行本身在Sauce Labs上运行。我的测试在我们公司的网站上运行,该网站存在于许多国家/地区,因此我为maven创建了执行配置文件,以便在所有域或单个特定域上运行测试。我的POM for surefire和profile看起来像这样:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <parallel>all</parallel>
        <threadCount>10</threadCount>
        <groups>${testcase.groups}</groups>
    </configuration>
</plugin>

<profile>
    <id>all</id>
    <properties>
        <testcase.groups>categories.AllDomains</testcase.groups>
    </properties>
</profile>

<profile>
    <id>germany</id>
    <properties>
        <testcase.groups>categories.Germany</testcase.groups>
    </properties>
</profile>

<profile>
    <id>poland</id>
    <properties>
        <testcase.groups>categories.Poland</testcase.groups>
    </properties>
</profile>

所有测试都使用必要的@Category类别进行了正确标记。 如果我选择单个域并运行测试,则会执行所有测试并在Jenkins中正确显示Total Tests / Failed Tests。

但如果我在所有域上运行测试,Jenkins每次都会向我显示不同数量的总测试/失败测试。因此,我从每个版本获得的反馈是不同的,并且完全不可实现,因为与Sauce Labs上的执行相比,失败的测试不正确(Sauce Labs也有不断的总测试/失败测试)。

链接中的图像显示我的Jenkins Test Graph,标记的部分都具有相同的执行配置,可以在所有域上运行,但执行的测试数量完全不同。

感谢Sauce Labs,我知道配置文件指定的所有测试都在运行,您可以在Image中看到总测试的数量是一致的。

到目前为止,我检查了所有代码和Jenkins配置10次,找不到原因,为什么会发生这种情况。那么为什么Jenkins没有显示实际结果呢? 如果我进入执行数据并检查每个类,我可以看到它添加并删除每个域的随机测试(但仍然在Sauce Labs上执行它们),没有模式,没有重复!

PS:配置文件和域名执行的配置暂时没有改变,这个问题一无所获(没有更新Selenium代码,Jenkins插件,Jenkins本身)

1 个答案:

答案 0 :(得分:0)

经过一些测试后,我发现Surefire中的并行测试执行存在问题。似乎正在运行parallel=all开始切断报告XML,而Jenkins没有收到所有执行测试的反馈。

当我使用parallel=all来缩短整体测试执行时间时,我调查forkCount以保持我的时间不低{{​​1}}。

所以我的POM中的新Surefire配置现在看起来像这样:

parallel=all

测试执行时间仍然很短,但所有报告都已完成,Jenkins正在显示正确的结果!