测试方法单独运行时为junit生成报告

伊利丹内克

我有一个带有JUnit测试的Java项目,该项目是使用Ant在Jenkins上运行的。通过在线阅读各种教程,我使所有测试都可以单独运行。

我的build.xml看起来像这样:

<target name="run_junit" depends="compile, ensure-test-name"
                                  description="Run JUnit tests">
    <echo message="Execute Test" />
    <junit printsummary="withOutAndErr" fork="yes">
        <sysproperty key="tests" value="${tests}"/>
        <classpath>
            <path refid="classpath"/>
            <pathelement path="bin"/>
        </classpath>
      <formatter type="xml"/>
      <batchtest>
         <fileset dir="src">
             <include name="${test}.java"/>
         </fileset>
      </batchtest>
    </junit>
</target>

这与我自己的Runner和Filter类以及@RunWith注释一起,意味着我可以在单个类中运行单个测试,如下所示:

ant run_junit -Dtest=ClassWithTests -Dtests=testMethod

在Jenkins中,这也很好用,而且我也可以并行运行测试。我的问题是,每种方法运行后,每个类的报告都会被覆盖。

例如,上面的命令将生成一个文件TEST-ClassWithTests.xml,其中包含有关testMethod的结果和输出的信息但是,如果我再跑步

ant run_junit -Dtest=ClassWithTests -Dtests=anotherTestMethod

TEST-ClassWithTests.xml文件将被覆盖,将只包含有关的结果和输出信息anotherTestMethod



所以我的问题是:如何使JUnit为每种方法生成单独的测试报告?并且有某种方法可以很好地将它们组合在一起,以便它们在詹金斯上很好地展示?我会问是否可以将方法追加到现有的JUnit报表中,但是这些测试是要并行运行的,因此可能无济于事。

沃尔克出版社

您可以使用<test>代替,<batchtest>因为这可以指定一个专用的输出文件。像这样:

  <test name="${test}" outfile="TEST-${test}-${tests}"/>

从ant 1.8.2开始,这甚至允许您通过属性运行单独的测试方法methods

  <test name="${test}" outfile="TEST-${test}-${tests}" methods="${tests}"/>

这可以帮助您摆脱自定义运行器。

Jenkins应该能够正确收集所有报告文件,并将它们合并到一个视图中。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何控制将在运行时生成多少 JUnit5 测试实例并将单独的 ParameterResolver 应用到每个实例

测试在单独运行时通过,但在整个测试类运行时未通过

从 XMLRunner 运行时未创建测试报告

Rspec系统测试在单独运行时通过,在整个套件中运行时失败

Junit测试在程序包上运行时失败,但在文件上运行时成功

运行时JUnit测试中Kotlin类的NoClassDefFoundError

春季-从JUnit和Maven运行时的测试结果不同

为每个测试运行程序在单独的 karate_report 文件夹中生成报告

Jasmine 单元测试在运行所有测试时失败,在单独运行时成功

PyTest:在运行时动态生成测试名称

生成JUnit测试报告

Selenium测试在单独运行时通过,在套件中运行时挂起,并且在启用日志记录或远程运行时惊人地通过套件

Flurl&HttpTest:单元测试在“全部运行”时失败,但在单独运行时通过

我可以在测试运行时跳过JUnit测试吗?

在 Spring 中以测试模式运行时如何禁用方法?

运行时生成错误

报告中的空手道测试套件运行时间

Haystack with Elasticsearch:单独运行时,单元测试会得到不同的结果

使用parallel_tests运行时,如何生成html报告?

jacoco:要生成报告,必须使用与运行时相同的类文件

如何在Linux中生成正常运行时间的月度报告?

如何通过 Google Cloud Stackdriver 生成正常运行时间报告?

在运行时将Birt报告导出为PDF文件

运行时,CentOS上的Docker报告“无法将sys挂载为只读”

我在本地 (MAC OSX) neman html 报告生成上运行时收到找不到“htmlextra”报告器

如何在运行时定义JUnit测试超时(即不带注释)?

当整个Maven项目在junit测试下运行时,logger.info引发空指针异常

如何在运行时在JUnit 4中获取测试用例名称?

Junit4在测试运行时引发异常