在我们的TFS版本中启用代码覆盖后,我遇到了一些问题。测试中的解决方案包含三个测试项目,在209个测试中,三个测试失败(一个项目中的一个,另一个项目中的两个),并出现以下错误:
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
堆栈跟踪表明已连接到Shims的使用。即使运行代码覆盖率并在构建期间禁用代码覆盖率,所有测试也会在本地传递,从而使测试再次通过。 该问题似乎与Microsoft Fakes generates UnitTestIsolationException略有关系,但Resharper未安装在构建服务器上。
我尝试了什么:
/p:EnableIntelliTrace=true
和.runsetting Diagnostic="true"
我的构建服务器设置:
答案 0 :(得分:0)
根据反馈UnitTestIsolationException when debugging tests using Fakes with IntelliTrace Enabled和Debugging a c# Unit Test with fakes and Intellitrace turned on throws UnitTestIsolationException,如果在测试设置中启用了intellitrace,则伪造无效。
答案 1 :(得分:0)
我遇到了同样的错误消息,尽管在我自己的情况下是在运行测试时。从命令行执行时,vstest.console.exe可以正常工作,但是从Bamboo构建任务运行时,它失败并显示以上消息。
问题最终出在用户运行任务上-构建服务器使用SYSTEM用户。当我以普通特权用户身份运行任务时,它成功了。