微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Visual Studio,测试资源管理器启动单元测试很慢

如何解决Visual Studio,测试资源管理器启动单元测试很慢

Visual Studio 2019 需要几分钟时间开始运行单元测试。 这是一个大型(> 300 个项目)网络框架 x86 解决方案。

从控制台执行时,测试会立即运行。 测试需要几秒钟才能完成(一旦 VS 决定开始执行它们)。 vstest.console 在任务管理器中没有显示 cpu 使用率。 尝试运行单个测试没有区别。

感觉 VS 正在等待什么,但断开网络适配器并没有使测试更快。

在空项目中运行测试需要大约 6 秒的时间,从点击测试资源管理器播放按钮到完成。

这是详细的测试日志

[5/10/2021 9:22:45.934 PM] Interrupt: Enqueueing RunSelectedOperation
[5/10/2021 9:22:45.934 PM] Enqueue operation 'RunSelectedOperation',hashcode:11243619 
[5/10/2021 9:22:45.935 PM] Operation left in the the queue: 1
[5/10/2021 9:22:45.935 PM]  'RunSelectedOperation',hashcode:11243619
[5/10/2021 9:22:45.935 PM] 

[5/10/2021 9:22:45.935 PM] Operation Dequeue : 'RunSelectedOperation'
[5/10/2021 9:24:01.053 PM] test container discoverer executor://orderedtestadapter/v1,discovered 1 containers
[5/10/2021 9:24:01.053 PM] Containers from 'Microsoft.VisualStudio.MSTest.Testwindow.OrderedTestContainerdiscoverer' :
[5/10/2021 9:24:01.053 PM]  C:\MySolutionFolder\someOtherProject\unittestproject1\orderedtest1.orderedtest:executor://orderedtestadapter/v1
[5/10/2021 9:24:01.054 PM] Updating containers from Microsoft.VisualStudio.MSTest.Testwindow.GenericTestContainerdiscoverer.
[5/10/2021 9:25:51.309 PM] test container discoverer executor://generictestadapter/v1,discovered 0 containers
[5/10/2021 9:25:51.309 PM] No containers found from 'Microsoft.VisualStudio.MSTest.Testwindow.GenericTestContainerdiscoverer' :
[5/10/2021 9:25:51.310 PM] Updating containers from Microsoft.VisualStudio.MSTest.Testwindow.WebTestContainerdiscoverer.
[5/10/2021 9:27:02.077 PM] Summary TextView dimensions: w=244.046666666667 h=110
[5/10/2021 9:27:02.077 PM] Summary TextView dimensions: w=244.046666666667 h=110
[5/10/2021 9:27:02.082 PM] Summary TextView dimensions: w=244.046666666667 h=110
[5/10/2021 9:27:02.771 PM] Summary TextView dimensions: w=204.546666666667 h=110
[5/10/2021 9:27:02.771 PM] Summary TextView dimensions: w=204.546666666667 h=110
[5/10/2021 9:27:02.775 PM] Summary TextView dimensions: w=204.546666666667 h=110
[5/10/2021 9:27:24.231 PM] test container discoverer executor://webtestadapter/v1,discovered 0 containers
[5/10/2021 9:27:24.231 PM] No containers found from 'Microsoft.VisualStudio.MSTest.Testwindow.WebTestContainerdiscoverer' :
[5/10/2021 9:27:24.231 PM] Completed updating containers.
[5/10/2021 9:27:24.231 PM] Syncing containers with the test store.
[5/10/2021 9:27:24.246 PM] Triggering auto-discovery
[5/10/2021 9:27:24.249 PM] Enqueue operation 'discoverAllOperation',hashcode:55311871 
[5/10/2021 9:27:24.249 PM] Operation left in the the queue: 1
[5/10/2021 9:27:24.249 PM]  'discoverAllOperation',hashcode:55311871
[5/10/2021 9:27:24.249 PM] 

[5/10/2021 9:27:24.429 PM] Start building 1 containers.
[5/10/2021 9:27:24.429 PM] Triggering build for 1 IProjectBasedTestContainers.
[5/10/2021 9:27:25.301 PM] No IBuildableTestContainers were found.
[5/10/2021 9:27:25.301 PM] Completed building containers.
[5/10/2021 9:27:25.310 PM] Start updating 1 containers.
[5/10/2021 9:27:25.315 PM] Updating container C:\MySolutionFolder\MyProject\test\UnitTests\bin\Debug\MyProject.UnitTests.dll.
[5/10/2021 9:27:25.322 PM] Successfully refreshed container: C:\MySolutionFolder\MyProject\test\UnitTests\bin\Debug\MyProject.UnitTests.dll
[5/10/2021 9:27:25.322 PM] Completed updating containers.
[5/10/2021 9:27:25.323 PM] discoveryOperation<RunSelectedOperation> Changed container count is 1
[5/10/2021 9:27:25.328 PM] discovering the following containers :
[5/10/2021 9:27:25.329 PM]  C:\MySolutionFolder\MyProject\test\UnitTests\bin\Debug\MyProject.UnitTests.dll
[5/10/2021 9:27:25.837 PM] UnitTestExtensiondiscoverer: Found the following Unit Test VSIX extensions: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUdio\2019\ENTERPRISE\COMMON7\IDE\EXTENSIONS\MICROSOFT\NODEJSTOOLS\TESTADAPTER\Microsoft.NodejsTools.TestAdapter.dll
    C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUdio\2019\ENTERPRISE\COMMON7\IDE\EXTENSIONS\MICROSOFT\PYTHON\CORE\Microsoft.PythonTools.TestAdapter.Executor.dll
    C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUdio\2019\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\EBF\TESTEXPLORER\Microsoft.VisualStudio.Workspace.ExternalBuildFramework.TestProvider.dll
[5/10/2021 9:30:47.708 PM] UnitTestExtensiondiscoverer: Found the following Nuget Test Adapter extensions: C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.3\build\net452\xunit.runner.visualstudio.testadapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.3\build\netcoreapp2.1\xunit.runner.visualstudio.dotnetcore.testadapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.3\build\uap10.0.16299\xunit.runner.visualstudio.uwp.testadapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.1\build\netcoreapp1.0\xunit.runner.visualstudio.dotnetcore.testadapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.1\build\uap10.0\xunit.runner.visualstudio.uwp.testadapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.1\build\_common\xunit.runner.visualstudio.testadapter.dll
[5/10/2021 9:30:47.733 PM] Initializing test platform with extensions: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUdio\2019\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\EBF\TESTEXPLORER\Microsoft.VisualStudio.Workspace.ExternalBuildFramework.TestProvider.dll
    C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUdio\2019\ENTERPRISE\COMMON7\IDE\EXTENSIONS\MICROSOFT\NODEJSTOOLS\TESTADAPTER\Microsoft.NodejsTools.TestAdapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.1\build\_common\xunit.runner.visualstudio.testadapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.1\build\netcoreapp1.0\xunit.runner.visualstudio.dotnetcore.testadapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.1\build\uap10.0\xunit.runner.visualstudio.uwp.testadapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.3\build\net452\xunit.runner.visualstudio.testadapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.3\build\netcoreapp2.1\xunit.runner.visualstudio.dotnetcore.testadapter.dll
    C:\Users\myUser\.nuget\packages\xunit.runner.visualstudio\2.4.3\build\uap10.0.16299\xunit.runner.visualstudio.uwp.testadapter.dll
[5/10/2021 9:30:47.739 PM] ---------- Starting test discovery for requested test run ----------
[5/10/2021 9:30:47.770 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection 
[5/10/2021 9:30:47.770 PM] Event:VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection key: VS.UnitTest.Testwindow.RunSettingsProvider.UserFile value:False
[5/10/2021 9:30:47.770 PM] Event:VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection key: VS.UnitTest.Testwindow.RunSettingsProvider.solutionFile value:False
[5/10/2021 9:30:47.770 PM] Event:VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection key: VS.UnitTest.Testwindow.RunSettingsProvider.AutoDetect value:False
[5/10/2021 9:30:47.880 PM] Test assembly C:\MySolutionFolder\MyProject\test\UnitTests\bin\Debug\MyProject.UnitTests.dll references test framework: Xunit2
[5/10/2021 9:30:47.899 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettingsService 
[5/10/2021 9:30:47.899 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettingsService key: VS.UnitTest.Testwindow.RunSettingsService.Name value:Python Run Settings
[5/10/2021 9:30:47.902 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettingsService 
[5/10/2021 9:30:47.902 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettingsService key: VS.UnitTest.Testwindow.RunSettingsService.Name value:VSTest Run Configuration
[5/10/2021 9:30:47.903 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettingsService 
[5/10/2021 9:30:47.903 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettingsService key: VS.UnitTest.Testwindow.RunSettingsService.Name value:Dynamic Code Coverage
[5/10/2021 9:30:47.903 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettingsService 
[5/10/2021 9:30:47.903 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettingsService key: VS.UnitTest.Testwindow.RunSettingsService.Name value:TestPropertySettingsForBoostAdapter
[5/10/2021 9:30:47.906 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettingsService 
[5/10/2021 9:30:47.906 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettingsService key: VS.UnitTest.Testwindow.RunSettingsService.Name value:TestPropertySettingsForGoogleAdapter
[5/10/2021 9:30:47.906 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettings 
[5/10/2021 9:30:47.906 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettings key: VS.UnitTest.Testwindow.RunSettings.Services value:5
[5/10/2021 9:30:47.911 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection 
[5/10/2021 9:30:47.912 PM] Event:VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection key: VS.UnitTest.Testwindow.RunSettingsProvider.ProjectFileCount value:0
[5/10/2021 9:30:47.912 PM] Event:VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection key: VS.UnitTest.Testwindow.RunSettingsProvider.ContainerCount value:1
[5/10/2021 9:30:47.955 PM] Project MyProject.UnitTests references test adapter: xunit.runner.visualstudio,version 2.4.3
[5/10/2021 9:30:47.955 PM] Project MyProject.UnitTests references test adapter: xunit.runner.visualstudio,version 2.4.3
[5/10/2021 9:30:48.691 PM] Grouped C:\MySolutionFolder\MyProject\test\UnitTests\bin\Debug\MyProject.UnitTests.dll : (Anycpu,Framework45,net472,)
[5/10/2021 9:30:48.695 PM] Test discovery settings for C:\MySolutionFolder\MyProject\test\UnitTests\bin\Debug\MyProject.UnitTests.dll:
 <RunSettings>
  <Python>
    <TestCases />
  </Python>
  <runconfiguration>
    <ResultsDirectory>C:\MySolutionFolder\TestResults</ResultsDirectory>
    <SolutionDirectory>C:\MySolutionFolder\</SolutionDirectory>
    <CollectSourceinformation>False</CollectSourceinformation>
  </runconfiguration>
</RunSettings>.
[5/10/2021 9:30:48.767 PM] Multiple versions of same extension found. Selecting the highest version.
  xunit.runner.visualstudio.testadapter : 2.4.3.1
  xunit.runner.visualstudio.dotnetcore.testadapter : 2.4.3.1
  xunit.runner.visualstudio.uwp.testadapter : 2.4.3.1
[5/10/2021 9:30:49.394 PM] [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.3+1b45f5407b (32-bit Desktop .NET 4.0.30319.42000)
[5/10/2021 9:30:49.626 PM] [xUnit.net 00:00:00.24]   discovering: MyProject.UnitTests
[5/10/2021 9:30:49.698 PM] [xUnit.net 00:00:00.31]   discovered:  MyProject.UnitTests
[5/10/2021 9:30:50.258 PM] Trying to update view -2101946778
[5/10/2021 9:30:50.259 PM] Trying to update view -755572006
[5/10/2021 9:30:50.259 PM] Updating view -755572006
[5/10/2021 9:30:50.261 PM] UpdateSummary Detail Unchanged: SKIPPED
[5/10/2021 9:30:50.636 PM] UpdateSummary Detail Unchanged: SKIPPED
[5/10/2021 9:35:21.125 PM] ---------- Starting test run ----------
[5/10/2021 9:35:21.149 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection 
[5/10/2021 9:35:21.149 PM] Event:VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection key: VS.UnitTest.Testwindow.RunSettingsProvider.UserFile value:False
[5/10/2021 9:35:21.149 PM] Event:VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection key: VS.UnitTest.Testwindow.RunSettingsProvider.solutionFile value:False
[5/10/2021 9:35:21.149 PM] Event:VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection key: VS.UnitTest.Testwindow.RunSettingsProvider.AutoDetect value:False
[5/10/2021 9:35:21.390 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettingsService 
[5/10/2021 9:35:21.391 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettingsService key: VS.UnitTest.Testwindow.RunSettingsService.Name value:Python Run Settings
[5/10/2021 9:35:21.391 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettingsService 
[5/10/2021 9:35:21.391 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettingsService key: VS.UnitTest.Testwindow.RunSettingsService.Name value:VSTest Run Configuration
[5/10/2021 9:35:21.391 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettingsService 
[5/10/2021 9:35:21.391 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettingsService key: VS.UnitTest.Testwindow.RunSettingsService.Name value:Dynamic Code Coverage
[5/10/2021 9:35:21.391 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettingsService 
[5/10/2021 9:35:21.391 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettingsService key: VS.UnitTest.Testwindow.RunSettingsService.Name value:TestPropertySettingsForBoostAdapter
[5/10/2021 9:35:21.391 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettingsService 
[5/10/2021 9:35:21.392 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettingsService key: VS.UnitTest.Testwindow.RunSettingsService.Name value:TestPropertySettingsForGoogleAdapter
[5/10/2021 9:35:21.392 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/Ext/RunSettings 
[5/10/2021 9:35:21.392 PM] Event:VS/UnitTest/Testwindow/Ext/RunSettings key: VS.UnitTest.Testwindow.RunSettings.Services value:5
[5/10/2021 9:35:21.392 PM] TelemetrySession: Creating the event: VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection 
[5/10/2021 9:35:21.392 PM] Event:VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection key: VS.UnitTest.Testwindow.RunSettingsProvider.ProjectFileCount value:0
[5/10/2021 9:35:21.392 PM] Event:VS/UnitTest/Testwindow/RunSettingsProvider/FileSelection key: VS.UnitTest.Testwindow.RunSettingsProvider.ContainerCount value:1
[5/10/2021 9:35:22.459 PM] Tests run settings for C:\MySolutionFolder\MyProject\test\UnitTests\bin\Debug\MyProject.UnitTests.dll:
 <RunSettings>
  <Python>
    <TestCases />
  </Python>
  <runconfiguration>
    <ResultsDirectory>C:\MySolutionFolder\TestResults</ResultsDirectory>
    <SolutionDirectory>C:\MySolutionFolder\</SolutionDirectory>
    <CollectSourceinformation>False</CollectSourceinformation>
  </runconfiguration>
</RunSettings>.
[5/10/2021 9:35:22.572 PM] Multiple versions of same extension found. Selecting the highest version.
  xunit.runner.visualstudio.testadapter : 2.4.3.1
  xunit.runner.visualstudio.dotnetcore.testadapter : 2.4.3.1
  xunit.runner.visualstudio.uwp.testadapter : 2.4.3.1
[5/10/2021 9:35:22.930 PM] Trying to update view -755572006
[5/10/2021 9:35:22.930 PM] Trying to update view -2101946778
[5/10/2021 9:35:22.930 PM] Updating view -755572006
[5/10/2021 9:35:23.156 PM] [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.3+1b45f5407b (32-bit Desktop .NET 4.0.30319.42000)
[5/10/2021 9:35:23.160 PM] UpdateSummary Detail Unchanged: SKIPPED
[5/10/2021 9:35:23.172 PM] [xUnit.net 00:00:00.36]   Starting:    MyProject.UnitTests
[5/10/2021 9:35:23.198 PM] [xUnit.net 00:00:00.59]   Finished:    MyProject.UnitTests
[5/10/2021 9:35:23.426 PM] UpdateSummary Detail Unchanged: SKIPPED
[5/10/2021 9:35:23.631 PM] Operation Dequeue : 'discoverAllOperation'
[5/10/2021 9:35:23.636 PM] Start updating 380 containers.
[5/10/2021 9:35:23.640 PM] Updating containers from Microsoft.VisualStudio.MSTest.Testwindow.OrderedTestContainerdiscoverer.
[5/10/2021 9:35:23.895 PM] Trying to update view -755572006
[5/10/2021 9:35:23.895 PM] Updating view -755572006
[5/10/2021 9:35:23.895 PM] Trying to update view -2101946778
[5/10/2021 9:35:23.898 PM] UpdateSummary Detail Unchanged: SKIPPED

解决方法

您不会从 Microsoft 获得有关此问题的答复。如果这是一个构建问题,Visual Studio 和 MSBuild 具有各种诊断设置,您可以在其中逐步获得有关实际发生的事情的越来越多的详细信息日志,您可以在其中查看日志,如果某些事情需要很长时间,您知道在哪儿。使用测试资源管理器,可以通过零方法对其进行诊断。如果 VSTest 决定在构建完成和测试开始之间需要 10 分钟,那么它将需要 10 分钟,并且没有任何迹象表明发生了什么。即使在运行之间没有变化。这是因为这个测试在 Visual Studio 中一直是二等公民。您可能会看到 Microsoft 因客户投诉而爆发的活动,但 Microsoft 的架构并不像他们做开发和编译器工具(它们是世界一流的)那样专注于测试工具。它永远不会发生。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。