gpt4 book ai didi

c# - VS2013 代码覆盖率生成期间随机单元测试失败

转载 作者:行者123 更新时间:2023-11-30 20:48:25 25 4
gpt4 key购买 nike

好的,我在 VS2013 中遇到代码覆盖率生成问题,我认为在 Internet 上没有任何解决方案

我的项目有一个包含 900 多个单元测试的测试套件,如果在 VS2010 中运行,这些测试全部通过

如果我在 VS2013 中从菜单 Test > Run > All Tests 运行它们,测试套件工作正常(100% 通过)

但是,如果我想在 VS2013 中通过菜单“测试”>“分析代码覆盖率”>“所有测试”生成代码覆盖率,许多测试(超过 500 个)将无缘无故地失败

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

test fail with no useful information

注意事项:

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

编辑

在第 98 行添加 BoreholeRepositoryTest 的代码

这只是一个测试的起点

enter image description here

最佳答案

我找到了解决问题的方法

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

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

我使用 xxx.testsettings 文件来控制代码覆盖率结果。看来 VS2013 使用了更新的测试框架,它不能很好地与 testsettings 文件配合使用。如果您使用 .testsettings 文件,MSTest 测试框架将用于运行您的测试。这运行得更慢,并且不允许您从第三方测试框架运行测试。

因此解决方案是:按照 Microsoft 的建议删除旧的 testsettings 文件并创建一个新的 runsettings 文件。

案件解决:)

关于c# - VS2013 代码覆盖率生成期间随机单元测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24615176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com