答案 0 :(得分:0)
你不能,老实说你不应该。任意代码覆盖要求都很糟糕,因为代码覆盖率是指标。它为您提供了一些信息,这些信息在作为大图片的一部分时可能会有用,但它本身并没有告诉您任何信息。
这是代码覆盖范围唯一可以明确告诉您的内容:“什么代码根本没有经过测试?”
80%的代码覆盖率并没有告诉你“我有80%的无错误代码”或“ 80%的代码在功能上是正确的”。它告诉你“有人编写了一些触及80%代码的测试代码。”并不是说测试是正确的,或者是好的,或者包含有意义的断言并验证正确的行为。
将任意代码覆盖率作为要求放置到位没有任何价值。如果团队尚未加入良好的测试实践并为新代码编写好的测试,那么他们只会玩这个数字。您可以编写一个测试方法,该方法将运行一些代码,不进行断言,并报告非常高的代码覆盖率。
如果团队已经拥有良好的测试实践,如果覆盖率下降到79%,他们就不需要构建对他们大喊大叫。也许他们用大量工具生成的“设计师”代码添加了一些东西,不需要彻底的测试。
所有这一切,SonarQube(我相信其他工具)允许您定义质量门(包括所需的代码覆盖率数字)和失败的构建,如果它们不符合质量门。