.NET(核心)5.0:单元测试永远挂起

.NET (core) 5.0: Unit testing hangs forever

很简单:无论我使用什么框架(xunit、mstest、nunit),它们都会永远挂起。

输出:

Determining projects to restore...
  All projects are up-to-date for restore.
  testapp -> C:\Users\beene\Documents\coding\csharp\current_projects\testapp\testapp\bin\Debug\net5.0\testapp.dll
  TestProject1 -> C:\Users\beene\Documents\coding\csharp\current_projects\testapp\TestProject1\bin\Debug\net5.0\TestProject1.dll
Test run for C:\Users\beene\Documents\coding\csharp\current_projects\testapp\TestProject1\bin\Debug\net5.0\TestProject1.dll (.NETCoreApp,Version=v5.0)
Microsoft (R) Test Execution Command Line Tool Version 16.11.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
vstest.console process failed to connect to testhost process after 300 seconds. This may occur due to machine slowness, please set environment variable VSTEST_CONNECTION_TIMEOUT to increase timeout.

Test Run Aborted.

重建解决方案不会产生任何警告或错误。重新运行测试产生同样的问题。

它会一直留在那里直到超时。该项目是一个测试项目,有一个简单的“Hello World!”控制台应用程序和一个简单的功能测试,用于将 1 添加到引用的整数。这就对了。这是重现此问题的最简单的可能安排。

我的研究表明这些框架实际上支持 .net 5。我只剩下 .NET 本身了。

有人遇到过这个问题吗?如果是这样,我将不胜感激。

任何需要更多信息或想要 运行 违规项目的人都可以这样做。我向 github 发布了一个基本测试用例项目,它在我的两台计算机上重现了这个问题。您可以在这里找到它:https://github.com/BeenEncoded/testproject

对于任何使用 WireGuard 或 MozillaVPN 的人:它会干扰 dotnet 如何连接到 vstest.console...

关闭你的 VPN。