如何在不降低代码覆盖百分比的情况下忽略某些单元测试?

时间:2011-09-27 13:49:39

标签: c# .net unit-testing code-coverage

我有一个与DataBase对话的课程。

我有我的集成测试,它与Db对话并断言相关的变化。但是我希望在提交代码时忽略这些测试,因为我不希望稍后自动调用它们。 (仅限于开发时间我现在使用它们)

当我输入[Ignore]属性时,它们不会被调用,但代码覆盖率会急剧下降。

  

是否有办法保留这些测试,但没有让它们自动运行   在构建机器上的方式,它们被忽略的事实   不影响代码覆盖百分比?

4 个答案:

答案 0 :(得分:0)

你使用的代码覆盖率工具很可能有某种CoverageIgnoreAttribute或类似的东西(至少是我用过的那些)所以你只需将它放在从那些单元测试中调用的方法块上应该没事。

答案 1 :(得分:0)

您要求的内容似乎没有意义。代码覆盖率通过执行测试并记录执行哪些语句/条件等来衡量。如果禁用测试,则不执行任何操作,并且代码覆盖率会下降。

答案 2 :(得分:0)

我不知道这是否适用于您的情况。但我自发地想到一个设置,你有两个解决方案文件(.sln),一个有单元/集成测试,一个没有。这两个解决方案共享相同的代码和项目文件,但开发/测试解决方案包括您的单元测试(在编译时构建和运行),而另一个解决方案则不包括。两个解决方案都应该受源代码控制,但只有没有单元测试的解决方案由构建服务器构建。

这种设置不需要您更改现有代码(太多)。我更喜欢重写代码以适合您的测试设置。

答案 3 :(得分:0)

TestNG具有群组,因此您可以指定仅自动运行某些群组,并让其他群组在此之外使用。您没有指定单元测试框架,但它可能有类似的东西。