2016-08-03 198 views
0

我在我们的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未安装在构建服务器上。

我已经试过

  1. 不同的构建类型:编译vNext,XAML建立与定义或默认的模板使用/p:EnableIntelliTrace=true和.runsetting
  2. 新增Diagnostic="true"所有
  3. 明确禁用智能跟踪。假货文件
  4. 增加记录详细度以获取更多错误信息
  5. R未在本地服务器上测试通过命令行

我的构建服务器设置

  • 的Windows Server 2012 R2
  • 的Team Foundation Server 2015.3
  • Visual Studio企业2015.3
+0

尝试转到您的构建代理计算机,启动Visual Studio开发人员命令提示符,然后运行:vstest.console.exe MyTestAssembly.dll/EnableCodeCoverage以查看您将获得的结果。 –

+0

@ Cece-MSFT:我收到了同样的错误。但是,我根据命令中三个测试程序的顺序获得了不同数量的失败测试。如果我按照服务器选择的顺序运行相同的订单,或者我选择另一个订单时出现一个错误,我会得到3次失败的测试 –

+0

正如您所提到的,您可以获得多少测试,是否意味着您现在可以获得代码覆盖率?你使用了默认的构建过程模板吗?你能否描述你的项目,我想在我身边进行测试。 –

回答

0
+0

但是我们没有使用Intellitrace,我们有很多使用Fakes的测试,它们在代码覆盖率下工作得很好...... –

+0

并且测试在发布模式下运行。 –

+0

@ToreØstergaard,您的错误消息指向C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ IntelliTrace \ 14.0.0 \ Microsoft.IntelliTrace.Profiler.14.0.0.dll,您可能需要仔细检查一下。 –