Testing 如何仅在jenkins上运行相关测试?

Testing 如何仅在jenkins上运行相关测试?,testing,jenkins,Testing,Jenkins,免责声明:我根本不是一个熟练的詹金斯用户 我正在寻找一个插件,允许我在maven构建的项目中只运行受最新提交影响的测试,但找不到一个足够聪明的maven插件,不能再次运行所有测试,也找不到一个jenkins插件来执行此操作。有没有办法做到这一点 比如说,我有一个由a.java、testA.java、B.java和testB.java组成的项目。我已将jenkins配置为对每次提交运行构建和测试。我刚刚提交了对a.java的更改,但没有提交到B.java,而且testB.java和B.java与a

免责声明:我根本不是一个熟练的詹金斯用户

我正在寻找一个插件,允许我在maven构建的项目中只运行受最新提交影响的测试,但找不到一个足够聪明的maven插件,不能再次运行所有测试,也找不到一个jenkins插件来执行此操作。有没有办法做到这一点

比如说,我有一个由a.java、testA.java、B.java和testB.java组成的项目。我已将jenkins配置为对每次提交运行构建和测试。我刚刚提交了对a.java的更改,但没有提交到B.java,而且testB.java和B.java与a.java之间没有依赖关系。我不希望Jenkins在检查新的源代码时运行testB.java。如果3e是从B.java或testB.java到a.java的依赖项,我希望jenkins能够弄清楚这一点,并运行testB.java


背景:在项目中运行所有测试太耗时。只运行一组固定的测试会留下漏洞。运行所有可能被手动更改破坏的测试容易出错。

我认为没有办法做到这一点。您可能希望将应用程序拆分为更细粒度的库,并告诉Jenkins仅在依赖项更改时重建。即使这缓解了你的问题,它也不会完全实现你想要做的事情。如果在一个项目中运行所有测试太耗时,那么可能(我强调“可能”一词)意味着该项目有太多的责任,需要重构。听起来,您面临的真正问题是“如果等待所有测试,我们必须等待太长时间才能获得构建结果。”解决方案是。我不建议只运行一组特定的测试。它假设A和B永远不会有交叉依赖关系。开发人员很容易打破这种假设。如果他们真的完全独立,那么就应该有独立的工作,而不是一份工作。