我在我们的TFS构建期间启用代码覆盖后遇到一些问题。待测溶液包含三个测试项目和总分209个测试三个测试失败(在一个项目中,两个在另一个),用下面的错误:分析代码使用代码覆盖率在TFS构建期间失败
Test method MyNamespace.MyTest threw exception:
Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException: Unexpected error returned by SetDetourProvider in profiler library 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\14.0.0\Microsoft.IntelliTrace.Profiler.14.0.0.dll'.
Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.IntelliTraceInstrumentationProvider.Initialize()
Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InitializeUnitTestIsolationInstrumentationProvider()
Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.CreateContext()
Microsoft.QualityTools.Testing.Fakes.ShimsContext.Create()
MyNamespace.MyTest() in MyFile.cs: line 224
堆栈跟踪表示连接到使用垫片。即使在构建期间运行代码覆盖率并禁用代码覆盖率,所有测试都会在本地通过,从而再次通过测试。 此问题与Microsoft Fakes generates UnitTestIsolationException略有关系,但Resharper未安装在构建服务器上。
我已经试过:
- 不同的构建类型:编译vNext,XAML建立与定义或默认的模板使用
/p:EnableIntelliTrace=true
和.runsetting - 新增
Diagnostic="true"
所有 - 明确禁用智能跟踪。假货文件
- 增加记录详细度以获取更多错误信息
- R未在本地服务器上测试通过命令行
我的构建服务器设置:
- 的Windows Server 2012 R2
- 的Team Foundation Server 2015.3
- Visual Studio企业2015.3
尝试转到您的构建代理计算机,启动Visual Studio开发人员命令提示符,然后运行:vstest.console.exe MyTestAssembly.dll/EnableCodeCoverage以查看您将获得的结果。 –
@ Cece-MSFT:我收到了同样的错误。但是,我根据命令中三个测试程序的顺序获得了不同数量的失败测试。如果我按照服务器选择的顺序运行相同的订单,或者我选择另一个订单时出现一个错误,我会得到3次失败的测试 –
正如您所提到的,您可以获得多少测试,是否意味着您现在可以获得代码覆盖率?你使用了默认的构建过程模板吗?你能否描述你的项目,我想在我身边进行测试。 –