单元测试运行慢?十分钟教会你怎么提升单测运行速度_xcode 跑单个文件单元测试好慢

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

本文主要是总结了笔者近年来的单元测试经验,分享如何有效提升单元测试的运行速度,节约开发时间。

提升妙招

1、优化单元测试代码。

例如:

    @Test
    public void test1() {
        //模拟数据库交互
        List mockList = Mockito.mock(List.class);
        when(mockList.get(0)).thenReturn("first");
        assertThat(mockList.get(0)).isEqualTo("first");
}

    @Test
    public void test2() {
        //模拟第三方接口返回
        when(personService.queryForOneName("1")).thenReturn("ceshiname1");       assertThat(personService.queryForOneName("1")).isEqualTo("ceshiname1");
}

2、多模块项目并行编译

针对多模块项目推荐采用mvn命令加-T选项开启并行构建。例如:mvn -T 2 test(指定两个线程并行),mvn -T 2C test(指定每个CPU分配2个线程构建)。

3、并发执行单元测试脚本

在maven-surefire-plugin开启parallel,可以为一个进程开启多个线程(Junit高于4.7)。

使用threadCount参数可以设置创建的最大线程数,或使用useUnlimitedThreads参数,可以为每个CPU内核创建一个线程。例如:

 <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.18.1</version>
      <configuration>
           <skipTests>false</skipTests>
           <testFailureIgnore>true</testFailureIgnore>
           <argLine>${argLine} -XX:MaxPermSize=1024m</argLine>
           <parallel>all</parallel>
           <threadCount>4</threadCount>
      </configuration>
 </plugin>

4、执行参数优先使用mvn test

mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个步骤。

mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个步骤。

mvn test命令可以一次性执行所有的用例,执行完后可以直接看到执行结果,相对mvn clean package和mvn clean install更节省时间。

5、减少初始化次数

使用suite参数,将同一个类的测试用例放在一个suite套件中,执行时只初始化一遍,减少初始化次数。

另外,推荐直接使用SpringBootTest注解,避免在注解中加入一些选项值,导致注解加载多次,延长时间。例如:

@Slf4j
@SpringBootTest


![img](https://img-blog.csdnimg.cn/img_convert/f3415511a38cac03319647ac9484e75c.png)
![img](https://img-blog.csdnimg.cn/img_convert/b69b49497d1ad76f1bd7a6c13dfab37d.png)
![img](https://img-blog.csdnimg.cn/img_convert/fa19d31171ab17c8c15bdf46ed6725bf.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

、讲解视频,并且后续会持续更新**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值