Java 使用maven和jenkins,如何测试程序员做的一些测试用例?
我正在从事许多项目,我们正在使用Java、Springs、Maven和Jenkins for CI,但我遇到了一些问题,一些程序员没有向项目中添加真正的junit测试用例。我希望maven和jenkins在部署到服务器之前运行测试。一些程序员做了一个空白测试,所以它开始和停止,并将通过测试Java 使用maven和jenkins,如何测试程序员做的一些测试用例?,java,maven,jenkins,Java,Maven,Jenkins,我正在从事许多项目,我们正在使用Java、Springs、Maven和Jenkins for CI,但我遇到了一些问题,一些程序员没有向项目中添加真正的junit测试用例。我希望maven和jenkins在部署到服务器之前运行测试。一些程序员做了一个空白测试,所以它开始和停止,并将通过测试 有人能告诉我如何自动执行此检查,以便maven和jenkins可以查看测试是否有输出。您需要添加代码覆盖率插件,如JaCoCo、EMMA、Cobertura等。然后您需要在插件的配置中定义您想要的代码覆盖率百
有人能告诉我如何自动执行此检查,以便maven和jenkins可以查看测试是否有输出。您需要添加代码覆盖率插件,如JaCoCo、EMMA、Cobertura等。然后您需要在插件的配置中定义您想要的代码覆盖率百分比(基本上是“测试覆盖的代码”),以便构建通过。如果低于该数字,则可能导致生成失败。而且,如果构建失败,Jenkins(或任何您的CI)将不会部署。除了查看代码之外,我还没有找到解决此问题的好方法 代码覆盖率无法检测到 从测试的数量来看,也有失败。看看测试名称,你肯定会失败 如果您有像“Kevin”这样的开发人员编写这样的测试,那么您只能通过代码审查来捕获这些测试 “Kevin”如何击败检查的摘要:
- 编写一个名为吸烟的测试。在这个测试中,您使用不同的参数组合调用被测试类的每个方法,每个调用都包装在
中。这为您提供了很好的覆盖率,而且测试从未失败过try{…}catch(Throwable t){/*ignore*/}
- 编写一堆空测试,其名称听起来像是您想出的奇特测试场景,例如
,widgetstrunredwhenflangiesoff
。这些测试都是空的,所以永远不会失败,而且管理者在检查CI系统时会看到很多详细的测试用例widgetscointerrotateiffange大于50
- “单元测试”>1
- “覆盖范围”>20
最后,Stephen对代码审查的看法是完全正确的。Sonar有一些基本但有用的代码检查功能。正如其他人所指出的,如果你的程序员已经开始欺骗编码实践,那么使用更好的覆盖工具并不能解决你的问题。他们也可能被欺骗 您需要与您的团队坐下来,与他们坦诚地讨论专业精神以及软件工程应该是什么 根据我的经验,代码审查是很好的,但它们需要在提交代码之前进行。但要在一个有人“作弊”的项目中工作,你至少需要有一个你可以信任的评审员。对于所谓的“突变测试”是一个很好的解决方案: 故障(或突变)会自动植入到代码中,然后运行测试。如果你的测试失败,那么突变就被杀死,如果你的测试通过,那么突变就活了 检测的质量可以通过突变致死的百分比来衡量 好的是,你可以很容易地在连词中使用它