gpt4 book ai didi

java - 如何分析 junit 测试套件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:34 24 4
gpt4 key购买 nike

我们正在使用 roboletric 运行许多单元测试。

我希望收集有关元数据的指标,例如运行时间最长的测试、让线程 hibernate 的测试,基本上是任何可以用来改善测试运行时间的东西。

最佳答案

您关心的是减少测试执行时间。您可以通过多种方式做到这一点。

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

定义强制测试用例后,您可以使用测试用例分组来创建套件。如果并行运行这些组,将会减少大量时间。但是你的分组准备需要很巧妙,这样每个小组都可以花费相似的时间。这将是最好的方法。

对于 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>

If we calculate here..Suppose, every test case requires 3 sec for execution.

For 5000*3 = 15000sec/3600 = 4.166 hr.

Now, using parallel processing it will take (5000/20)*3 = 750sec/3600 = 0.21hr or `12.5 minutes only.

资源链接: Running junit tests in parallel in a Maven build?

适用于 TestNG、Appium、Jenkins 等

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

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

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

For analyzing, reporting and showing the status of code coverage, execution time, various types of tools are used. JaCoCo is most popular among them. There are also some tools like Cobertura, Arquillian etc.

此处给出了使用 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

关于java - 如何分析 junit 测试套件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40392235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com