如何分析junit测试套件?

RyPope:

我们有许多使用roboletric进行的单元测试。

我正在寻找有关元数据的指标,例如运行时间最长的测试,使线程处于休眠状态的测试,基本上可以用来改善测试运行时间的任何方法。

天空步行者 :

您关心的是减少测试执行时间。您可以通过多种方式进行操作。

首先,您必须决定哪些测试用例是强制性的,哪些测试用例需要每月运行等。

定义必需的测试用例后,您可以使用测试用例的分组来创建套件。如果并行运行组,将减少大量时间。但是,您的分组准备工作很棘手,以便每个小组都可以花费相似的时间。那将是最好的方法。

对于JUnit,

您可以使用并行进程和线程池来运行测试用例的线程数(例如20个线程的5000 tcs)

<build>
    <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.7.1</version>
        <configuration>
            <parallel>classes</parallel>
            <threadCount>20</threadCount>
        </configuration>
    </plugin>
    </plugins>
</build>

如果我们在这里计算。假设每个测试用例需要3秒钟的执行时间。

对于5000 * 3 = 15000sec / 3600 = 4.166 hr。

现在,使用并行处理将花费(5000/20)* 3 = 750sec / 3600 = 0.21hr或仅12.5分钟。

资源链接: 在Maven构建中并行运行junit测试?

对于TestNG,Appium,Jenkins等

对于UI测试,您可以运行多浏览器,以便它们可以并行执行更多测试用例。

您可以使用多个节点,以便一次运行多个节点并减少时间。

在某些情况下,您可能会更棘手,因为您不能在每个测试用例中都登录。会有一个起点。每个测试用例将结束并返回该起点。通过这种方式,我们还可以减少时间。但是违反FIRST

为了分析,报告和显示代码覆盖率状态,执行时间,使用各种类型的工具。JaCoCo在其中最受欢迎。还有一些工具,例如Cobertura,Arquillian等。

此处提供了使用JUnit,JaCoCo和Maven进行代码覆盖的完整示例https : //softwarecave.org/2014/02/01/using-junit-jacoco-and-maven-for-code-coverage/

完整的代码在这里给出:https : //github.com/robertp1984/softwarecave/tree/master/jacoco

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章