2

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

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

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

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

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

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

4

1 回答 1

1

据我所知,Infinitest 没有提供相应的 Maven 插件,所以使用它是不可能的。不过,您可以考虑创建它,为世界做出宝贵的贡献。

据我所知,它提供了相当可靠的 API,因此编写插件应该不是什么大问题。你可能想先看看InfinitestCore接口。如果您使用的是 CI 环境,您可能希望直接为 Infinitest 提供文件列表,git diff --name-only HEAD~1从中生成最新提交中更改的文件列表(例如,如果您针对每个提交运行构建)。

升级版。似乎有一种解决方法涉及 maven-exec-plugin 在 Maven 构建中显式运行 Infinitest:您可以从命令行或 m2eclipse 的 Maven Build 启动器运行“mvn exec:exec”来针对您的项目运行 Infinitest。我建议使用executionsPOM 中的元素指定应在其上运行的显式构建阶段:

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

于 2015-09-29T17:59:32.047 回答