如何在VSTS中的CI管道中设置此规则

时间:2018-06-04 12:13:15

标签: azure continuous-integration azure-devops code-coverage

VSTS新手

我正在CI&中设置VSTS管道在这样做时,如果代码覆盖率为80%+那么我需要设置代码覆盖率验证,然后构建其他代码不构建。

enter image description here

我在定义中启用了代码覆盖率选项,但如何设置此质量检查?

1 个答案:

答案 0 :(得分:0)

你不能,老实说你不应该。任意代码覆盖要求都很糟糕,因为代码覆盖率是指标。它为您提供了一些信息,这些信息在作为大图片的一部分时可能会有用,但它本身并没有告诉您任何信息。

这是代码覆盖范围唯一可以明确告诉您的内容:“什么代码根本没有经过测试?”

80%的代码覆盖率并没有告诉你“我有80%的无错误代码”或“ 80%的代码在功能上是正确的”。它告诉你“有人编写了一些触及80%代码的测试代码。”并不是说测试是正确的,或者是好的,或者包含有意义的断言并验证正确的行为。

将任意代码覆盖率作为要求放置到位没有任何价值。如果团队尚未加入良好的测试实践并为新代码编写好的测试,那么他们只会玩这个数字。您可以编写一个测试方法,该方法将运行一些代码,不进行断言,并报告非常高的代码覆盖率。

如果团队已经拥有良好的测试实践,如果覆盖率下降到79%,他们就不需要构建对他们大喊大叫。也许他们用大量工具生成的“设计师”代码添加了一些东西,不需要彻底的测试。

所有这一切,SonarQube(我相信其他工具)允许您定义质量门(包括所需的代码覆盖率数字)和失败的构建,如果它们不符合质量门。