在VS2013中生成代码覆盖率期间,随机单元测试失败

时间:2014-07-07 16:17:09

标签: c# visual-studio-2010 unit-testing visual-studio-2013 code-coverage

好的我在VS2013中遇到代码覆盖生成问题我不认为互联网上有任何解决方案

我为我的项目提供了900多个单元测试的测试套件,如果在VS2010中运行则全部通过

如果我从菜单Test>菜单中在VS2013中运行测试套件,它可以正常工作(100%通过)运行>所有测试

但是,如果我想从菜单Test>中生成VS2013中的代码覆盖率。分析代码覆盖率>所有测试,许多测试(其中500多个)将失败,没有特别的理由

测试运行详细信息窗口不包含任何有用信息,因为它无法指出测试失败的原因(下面的屏幕截图)

test fail with no useful information

备注

  • 如果我重新运行该特定测试,或者从菜单Test>运行所有测试,测试将通过。运行>所有测试
  • 这个问题在我的机器和其他一些机器上随机出现,而对于团队的其他成员,代码覆盖率生成工作正常(100%测试通过)
  • VS2010
  • 中绝不会出现此问题

修改

在第98行添加BoreholeRepositoryTest的代码

它只是测试的起点

enter image description here

1 个答案:

答案 0 :(得分:4)

我找到了解决问题的方法

我注意到QTAgent32_40.exe在测试运行过程中随机崩溃,导致尚未执行的测试失败

之后的一些研究揭示了我的问题的根源

我使用xxx.testsettings文件来控制代码覆盖率结果。似乎VS2013使用了更新的测试框架,它与testsettings文件不兼容。如果使用.testsettings文件,则将使用MSTest测试框架来运行测试。这种运行速度较慢,不允许您从第三方测试框架运行测试。

所以解决方案是:摆脱好旧的testsettings文件,并按照Microsoft的建议创建一个新的runsettings文件。

案例解决了:)