增量运行测试套件

时间:2015-09-29 14:48:46

标签: maven continuous-integration infinitest continuous-testing pitest

我们有一个大型项目,在测试套件中有数千个测试,并且完整的测试运行需要很长时间。

我正在寻找一种可以集成在Maven构建中的工具,它只会运行那些可能受影响的测试(知道每个的代码覆盖率),因为一些覆盖的代码有变化。< / p>

我正在谷歌上搜索,发现了一些类似的东西,但不是一个完美的契合:

  • Ekstazi http://www.ekstazi.org/看起来就是这样,但它与TestNG开箱即用(在测试套件中使用),而且不是开源
  • 无限https://infinitest.github.io/似乎主要关注IDE集成 - 是否可以仅按需运行测试(就像mvn infinitest一样)?
  • PIT http://pitest.org/并不是我想要的,但它也需要分析每次测试的覆盖率

使用(last)git commit记住测试覆盖率并针对最后的代码更改运行测试也是非常有用的。

欢迎对上述内容提出进一步的建议和意见。

1 个答案:

答案 0 :(得分:1)

据我所知,Infinitest没有提供相应的Maven插件,因此无法使用它。你可以考虑创造它,为世界做出宝贵的贡献。

据我所知,它提供了非常可靠的API,因此编写插件应该不是一个大问题。您可能需要先查看InfinitestCore界面。如果您正在使用CI环境,您可能希望直接从git diff --name-only HEAD~1提供Infinitest的文件列表,这将生成最新提交中更改的文件列表(例如,如果您针对每个提交运行构建)

<强> UPD 即可。似乎有一个涉及maven-exec-plugin的解决方法,以在Maven构建中显式运行Infinitest:you can run 'mvn exec:exec' from the command line or from m2eclipse's Maven Build launcher to run Infinitest against your project.我建议使用executions element in POM指定应在其上运行的显式构建阶段:< / p>

  

执行:重要的是要记住插件可能有多个目标。每个目标可能具有单独的配置,甚至可能将插件的目标完全绑定到不同的阶段。执行配置执行插件的目标。