硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

使用 Clover 的 Test Optimization 进行更快的测试

  • 2008-11-22
  • 本文字数:1045 字

    阅读完需:约 3 分钟

最近发布的 Clover 2.4 引入了一个叫做“Test Optimization”的新特性,该特性会加快 CI 构建并减少开发者等待测试的时间。它使用了“per-test”覆盖数据只运行受代码改变影响的测试。

Atlassian 发布了其流行的代码覆盖分析工具 Clover 2.4 版,增加了一个名为“ Test Optimization ”的新特性,他说到:

Clover 可以优化测试的运行,极大地降低测试代码改变所需的时间。典型地,只要代码发生了改变,完整的测试套件都会运行。通过使用 Test Optimization,Clover 会根据具体的改变决定要运行的最佳测试子集。只测试你所需要的会提供更快的反馈,而这一切并不会降低测试质量。

在衰退测试套件中计算代码改变所产生的影响是需要时间的,而降低该时间会极大地提升团队的生产率。很多人都认为这就是团队为何要努力保持其单元测试的快速执行的原因,确实是这样的。但有很多原因导致即使团队保证了每个单元测试的快速执行,其整个应用所累积起来的测试套件依然要花费很多时间去运行。

改进这种情况的一个合理的办法就是只运行受代码改变影响的测试。手工完成这项工作不仅要花费很多时间,还会频频导致“测试丢失”,最终失去了优化测试运行带给我们的好处。Clover 的这个新特性为团队提供一种方式来完成这个任务而无需手工操作,同时将“测试丢失”的风险降到最低。

Brendan Humphreys 详细描述了 Clover 是如何完成这个工作的

作为一个代码覆盖工具,Clover 度量每个测试的代码覆盖率——也就是说,它会度量哪些测试运行了哪些代码。通过这种方式,针对某个源代码文件,Clover 可以精确判断出哪些测试适合它。Clover 使用该信息与源文件的修改信息来构建适合于改变的源代码文件的测试子集。接下来这个子集被传到测试运行器中,同时传递的还有上次构建时失败的测试以及之后新加的测试。

根据 Humphrey 所述,Test Optimization 还拥有一些策略以调整测试运行的顺序,他说这可以提升测试运行的效率。关于这些策略:

我们还可以使用一些策略调整 Clover 组合的测试集的顺序:

  • 失败优先(Failfast)——Clover 按照失败的可能性大小运行测试,这样任何失败都会尽可能快的出现。
  • 随机——随机运行测试可以很好的去掉内部测试的依赖。
  • 正常——不会重新排序。测试按照他们传递到测试运行器的顺序运行。

Humphreys 接下来谈到了其 FishEye 团队对该新特性试用 10 天的结果,他说他们的“测试执行时间降低了 25%”。

请花些时间了解一下 Clover 的新版本,尤其是 Humphrey 的感受来看看它是否有助于你的团队。

查看英文原文: Faster Test Runs With Clover’s Test Optimization

2008-11-22 00:401176
用户头像

发布了 88 篇内容, 共 271.7 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

2020java面试题-chukou-chengzhang

爱好编程进阶

Java 程序员 后端开发

7-21 求前缀表达式的值 (25 分)(思路详解)

爱好编程进阶

Java 程序员 后端开发

SAP GUI 一些实用技巧分享

汪子熙

router 客户端 SAP GUI 5月月更

[Python] 题集 ②

謓泽

5月月更

Flink CDC Meetup · Online,5.21 开讲!

Apache Flink

大数据 flink 编程 流计算 实时计算

与众不同的企业,都有最棒的知识管理!

小炮

知识管理

kubernetes下的Nginx加Tomcat三部曲之一:极速体验

程序员欣宸

Java tomcat Kubernetes 5月月更

算力免费,还奖钱,OpenI日常激励活动“我为开源打榜狂”来袭

OpenI启智社区

开源 我为开源打榜狂

10个 解放双手的 IDEA 插件,少些冤枉代码

爱好编程进阶

Java 程序员 后端开发

2个月成功逆袭!最新分享阿里(Java岗

爱好编程进阶

Java 程序员 后端开发

面试突击46:公平锁和非公平锁有什么区别?

王磊

Java 面试 java常见面试题

C语言_数组的查找、替换、排序、拼接

DS小龙哥

5月月更

cdn日志文件导入mysql进行分析,核心用到 Python

梦想橡皮擦

5月月更

【刷题第三天】无重复字符的最长字串

白日梦

5月月更

11-SpringSecurity:Session共享

爱好编程进阶

Java 程序员 后端开发

3 个方法,教你提升程序员的自我价值

爱好编程进阶

Java 程序员 后端开发

OpenYurt 开源之夏开始申请啦

阿里巴巴云原生

阿里云 云原生 开源之夏

网站开发进阶(四十九)由JS报“未结束的字符串常量”引发的思考

No Silver Bullet

作用域 5月月更 解析引擎

java内存模型之双重检查锁定与线程安全的延迟初始化

急需上岸的小谢

5月月更

【校招/社招】面试字节,写了一份硬核简历!

小傅哥

Java 面试 小傅哥 招聘 简历

1024属于程序员的专属浪漫

爱好编程进阶

Java 程序员 后端开发

【ICDE 2022】稀疏模型训练框架HybridBackend,单位成本下训练吞吐提升至5倍

阿里云大数据AI技术

深度学习 推荐系统 开源项目

网站开发进阶(四十五)浅谈XML与HTML的区别

No Silver Bullet

html xml 5月月更

2022年开发者时间报告

Geek_rze78a

40个W年薪蚂蚁团队Java岗技术4面分享:HashMap+线程池

爱好编程进阶

Java 程序员 后端开发

某小视频App v10.x 手机号加密算法分析

奋飞安全

android 移动安全

跨境电商中的秘密

Geek_e369a5

跨境电商 编程解决 跨境电商快速更新产品 多图AI融合 图片背景替换

2021年阿里高频Java面试题:分布式+中间件

爱好编程进阶

Java 程序员 后端开发

33岁跳槽无路,濒临绝望受贵人指点,拼尽全力阿里offer在兜里

爱好编程进阶

Java 程序员 后端开发

Apriori算法详解

爱好编程进阶

Java 程序员 后端开发

六大应用场景解决方案重磅发布,华为开发者联盟助力开发者商业成功

最新动态

使用Clover的Test Optimization进行更快的测试_Java_Mike Bria_InfoQ精选文章