我目前正在开发一个有32个单元测试的解决方案。我一直在使用resharper测试运行器-它工作得很好。所有测试都在运行,所有测试都显示正确的测试结果。

但是,在使用Visual Studio测试资源管理器时,测试未运行。

测试资源管理器正在显示所有单元测试,但一旦单击“全部运行”,所有测试都将变成灰色,并且不显示测试运行的结果:

所有测试类都是公共的 所有测试类都声明了[TestClass]属性 所有测试方法都使用[TestMethod]属性 生产力代码和测试项目都是针对。net 3.5的。 我已经尝试清洁构建我的解决方案,和/或删除所有obj, bin,调试和发布文件夹

我很感激任何能解释这种行为的提示。


如果你正在使用NUnit而不是MSTest,那么你将需要NUnit 2测试适配器或NUnit 3测试适配器(Visual Studio≥2012/2013)。


我也有同样的症状

请确保您通过工具-扩展和更新安装了正确的Visual Studio扩展。在我的案例中,我必须从Online选项中安装XUnit和Specflow。

然后清洗溶液,重新构建。

如果仍然没有帮助,清除您的temp目录(在开始菜单搜索中搜索%temp%并删除temp中的所有内容)

然后最后尝试卸载Resharper,这最终解决了我的问题。


如果你的项目不全是AnyCpu,那么你可能还想检查以下2个设置是否匹配:

[右键单击测试项目]->属性->构建->平台目标-例如x64 [主菜单]-> Test -> Test Settings -> Default Processor Architecture -> X64 .

我发现,当这些不匹配时,我的测试项目将无声地失败运行。


我在VS 2017也遇到了同样的问题。在我的例子中,它通过重新启动VS来解决。


对我来说,解决方案是将Resharper单元测试设置“默认平台架构”更改为“x64”


我不得不改变我的异步测试方法,以返回任务而不是void。

然后,测试在“测试资源管理器”中处于活动状态并可运行。


检查测试是针对什么框架编写的(例如nunit, xunit, VS test等),并确保你已经安装了正确的测试适配器/运行器扩展。

对我来说,是NUnit 3测试适配器丢失了,我通过查看NUnit .framework依赖版本确认了所需的版本号(在解决方案资源管理器的依赖项树中选择.dll,并点击F4调出属性窗口)。


在我的例子中,这是因为我的解决方案中的一个测试项目具有MSTest。TestFramework和MSTest。TestAdapter安装了包,但其他的没有。在解决方案中的一个项目安装了这些包之前,显然不需要运行测试。

这个问题通过在测试项目上安装这些包而得到解决。


对我来说,重新启动VS2017不起作用。我必须清理sln,然后找到一个没有运行测试的文件,只运行该文件。在那之后,我确实运行了所有,它又正常工作了。


这里是测试项目没有被标记为建造:

Build ->配置管理器…->检查你的测试项目的构建


对我来说,修复它的是升级ms测试金包


对我来说(不是一个解决方案),它是取消选择菜单[测试]->[测试设置]->[{当前文件}]中的.testsettings文件来取消当前使用的文件。

对我来说,一开始就是这样。

<TestSettings name="Local (with code coverage)" id="e81d13d9-42d0-41b9-8f31-f719648d8d2d" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Deployment>
    <DeploymentItem filename="ConfigurationImportExportTest\Configurations\" />
    <DeploymentItem filename="output\Debug\" />
  </Deployment>
  <Execution>

显然deploymenttem有干扰。

因为这是在Output选项卡中:

Warning: Test Run deployment issue: The assembly or module 'Microsoft.SqlServer.Management.SqlParser' directly or indirectly referenced by deployment item 'output\Debug\' specified by the test settings was not found.
.... more of the same

它没有告诉我很多东西。 这似乎与所有项目都将其编译产品放在一个公共的\output\Debug文件夹中有关

然而,这似乎并没有阻碍它。 它发出了另一个警告,提到了

A testsettings or runsettings file with `ForcedLegacyMode = TRUE or VSMDI files are not supported by MSTest-V2.

这似乎阻止了它。


由于我在这里遇到了这种错误,我发布了我的问题/解决方案:

症状:

并不是所有的测试都在运行,但它们并不依赖于每个项目,只是其中一些测试被执行了。 所有被执行的都是绿色的。 技术堆栈:dotnet core / XUnit / FluentAssertions 检测到所有测试并在更改时更新。 通过多次选择或运行“未运行的测试”,可以执行这些测试。

问题:

在另一个线程内抛出异常的代码中有一个错误。所有测试断言都通过了,但是它取消了测试执行。 我可以在“测试输出”(NullException)中看到错误。


检查你的项目文件中不同版本的NUnit的引用:

在我的例子中,我已经安装了NUnit和NUnit3TestAdapter的3.11.0版本,但是在项目文件中有对2.6.4版本的旧引用,这些引用没有随着新的安装被删除。

解决方案(建议修复引用问题,请参阅文档): 重新安装NUnit和NUnit3TestAdapter,这修复了我的项目中的引用。

PM> Update-Package NUnit -reinstall
...
PM> Update-Package NUnit3TestAdapter -reinstall

解决方案2(如果重新安装没有修复引用): 卸载并安装NUnit和NUnit3TestAdapter。

PM> Uninstall-Package NUnit
...
PM> Uninstall-Package NUnit3TestAdapter
...
PM> Install-Package NUnit
...
PM> Install-Package NUnit3TestAdapter

Clean-Rebuild解决方案对我很有效。


对我来说,这是由测量代码覆盖率的VS扩展引起的。它不能引用特定程序集,因此不会运行任何测试。使用以下命令行可以很好地运行测试:

dotnet test

要解决这个问题,您可以选择将所有依赖项复制到Test项目调试文件夹中。这可以确保任何程序集都可以解析,因为“未使用的”程序集不会被删除。您可以在测试项目的.csprog文件中添加以下内容:

<PropertyGroup>
    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>

尝试从测试方法上面删除[Ignore]属性。


我有不同版本的NUnit(3.11.0)和NunitTestAdapter (3.12.0) nuget包。当我将NUnit更新到3.12.0时,Visual Studio运行了测试。


在我的情况下,它可以更新MSTest nuget包。甚至可以在空白的MSTest项目上重现这个问题,更新包工作。


对我来说,在基类中有一个名为TestContext的属性导致了这种行为。例如:

[TestClass]
public abstract class TestClassBase
{
    protected object TestContext { get; private set; }
}

[TestClass]
public class TestClass : TestClassBase
{
    // This method not found
    [TestMethod]
    public void TestCase() {}
}

I found that in the project it was not referencing the Microsoft.VisualStudio.QualityTools.UnitTestFramework assembly. Instead, it was referencing Microsoft.VisualStudio.TestPlatform.TestFramework and Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions. When I removed those two references and added the reference to the Microsoft.VisualStudio.QualityTools.UnitTestFramework assembly the tests that were previously marked with the blue exclamation point suddenly became active and started working.


我解决的问题与这里的任何解决方案都完全不同:

我的每个测试都调用了一个函数,这个函数反过来调用自己,这意味着它不会终止:

public GoogleIntent CreateIntent(BotPath botpath)
{
    return CreateIntent(botpath);
}

有同样的症状,在我的情况下,是dotnet核心SDK版本的问题。

该项目的目标是2.2,并且能够使用3.0进行构建。在安装最新的2.2 SDK版本后,他们就可以运行了。


我可以从您的属性中看出您正在使用MSTest。我有一个类似的问题:我的测试显示在测试资源管理器中,但当我试图运行它们时(通过选择全部运行或单独选择它们),它们不会出现。

我的问题是,我从一个空的。net标准类库项目手动创建了单元测试项目。我已经安装了MSTest。TestFramework NuGet包,而不是MSTest。TestAdapter包。只要我安装了适配器包,它们就会按预期运行。

回想起来似乎是显而易见的,但是当您从模板创建单元测试项目时,您认为这些事情是理所当然的。


在我的情况下,我有一个async void方法,我用async任务替换,所以测试运行如我所料:

    [TestMethod]
    public async  void SendTest(){}

替换为:

    [TestMethod]
    public async  Task SendTest(){}

TLDR:更新测试包,查看输出->测试 控制台

我为此挣扎了一天半。所以我是这样解决的:

症状

5个单元测试项目,都可以在TestExplorer中找到 5个中有2个执行正确 3表示根本不运行 该问题始于.net框架更新之后

调查

由于所有的包都是在.net框架更新期间更新的,所以我从工作项目和不工作项目之间的差异开始。第一个线索是所有3个项目都在使用:MSTest。TestAdapter和MSTest。TestFramework

当然,我去了VS 2019的->输出控制台->测试下拉菜单,查看输出。没有什么有用的东西。

解决方案的第一步:更新MSTest。TestAdapter和MSTest。TestFramework到版本2.0.0

解决方案的第二步:现在输出控制台-> Test下拉输出开始显示一个接一个,丢失的包和错误的绑定重定向

解决方案的第三步:手动添加丢失的包。对我来说

System.Runtime.Extentions 系统。反射 也许我还遗漏了一些

解决方案的第4步:删除/修复不必要的绑定重定向。

我希望这能帮助到其他人。


我遇到过这个问题,对我来说,这是由于有多个不同版本的测试项目造成的:

MSTest。TestAdapter MSTest。TestFramework

巩固项目的nuget包,使他们是相同的解决了我的问题。


将测试项目升级到最新的目标框架版本。

我使用的是Visual studio 2019,目标框架4.5的支持在2016年结束,跳转到4.7解决了我的问题。


在更新到Visual Studio 16.4.1后,我也遇到了同样的问题。 进入测试资源管理器->设置按钮-> AnyCPU项目的处理器架构-> x64


值得一提的是,有时用户文件夹中的NUnit Test Adapter文件会损坏 C: \[用户]用户当地\ AppData \ \ Temp \ VisualStudioTestExplorerExtensions \ NUnit3TestAdapter.3.8.0 /构建/ net35 / NUnit3.TestAdapter.dll 在Windows 10上,这会导致测试资源管理器停止工作。


在vs2019干净安装后也有同样的问题。发现测试,但运行时未显示“发生意外错误”。通过设置x64而不是默认选择的x86来修复。


Nuget已经解决了这个问题


我使用。net 4.7的VS2019。我安装了NUnit扩展v3,并将测试设置改为使用X64。我的单元测试项目是任何CPU(如果我把它改成x64就可以工作)。现在我可以调试我的代码了。


当正在运行的测试方法抛出StackOverflowException,使测试运行程序中止测试运行,导致测试运行输出为0时,也会观察到此问题。

为了找到罪魁祸首并解决它,在TestInitialize和TestMethod装饰方法的开始处设置一个断点,在调试模式下运行单元测试,继续跨步(F10),直到抛出异常。


您可以通过打开Output面板(view——> Output)并从“Show Output from”下拉菜单中选择“tests”来查看测试运行器的错误输出


此外,如果你安装了Resharper,你可以打开一个测试文件,并将鼠标悬停在测试旁边的测试圈上,以获得额外的错误信息

单击该按钮将转到一个显示更详细信息的窗口。或者,你可以通过点击扩展—>重塑器—>窗口—>单元测试探索结果来打开这个窗口


我在使用。net Core/xUnit/FluentAssertions堆栈时遇到了与OriolBG类似的症状,但对我来说,更新项目的Microsoft.NET.Test.Sdk nuget包起了作用。


我也遇到过同样的问题,但当我在实际的桌面上创建一个工作副本时,我的问题得到了解决。对我来说,这个问题是因为项目文件夹位于网络驱动器上,由于某种原因,依赖项无法在网络驱动器上加载。希望这能帮助到一些人。


已经尝试了VisualStudio 2019 Version 16.4.6和Microsoft.VisualStudio.TestTools的许多选项。UnitTesting,但是现在成功运行测试的唯一方法是在控制台调用下一个命令

dotnet test

在测试资源管理器中发现测试,但结果为“未运行”。

更新Visual Studio也无济于事。

通过运行更新到下一个包的最新版本,解决了“没有测试匹配给定的测试用例过滤器FullyQualifiedName”的问题:

Microsoft.NET.Test.Sdk
MSTest.TestAdapter
MSTest.TestFramework

这个问题已经有很多答案了,但我有一个不同的场景和解决方案。

我们将正在测试的类型的功能从一个类移动到一个新类,这样就创建了一个新的测试类,旧的测试类最终为空。

原:

旧的测试类 测试初始化方法 测试方法

断:

旧的测试类(保留初始化项,类保留为未来的占位符) 测试初始化方法(保留,单独) 没有测试方法(原始的测试方法出现在测试运行器中,但不存在于代码中,因此永远不会执行) 新的测试类 测试初始化方法 测试方法

修复:

旧的测试类(已删除) 新的测试类 测试初始化方法 测试方法

清理项目,关闭Visual Studio,删除TestResults文件夹,然后重新启动VS,然后重新构建项目。(这本身可能解决您的问题,但对我来说还不够,直到删除了旧的测试类。)


在测试资源管理器中设置AnyCPU项目的处理器架构修复了我的问题!见上面的截图。


我正在使用XUnit,缺少XUnit .runner.visualstudio包。安装后,我的测试就运行了。


在解决方案资源管理器中右键单击文件,确保它的构建操作设置为“c# Compiler”

解决方案资源管理器—>右键单击文件—>“属性”—>构建动作=“c#编译器”


我有一个稍微不同的场景,但这是谷歌的结果,所以我也会回答我的问题。我可以运行这些测试,但实际上只有大约一半的测试能够运行,并且没有错误输出。

最终,我调试了所有的测试,并在创建一些模型的测试实例时遇到了堆栈溢出错误。

在测试实例方法中,子模型创建了父模型,父模型创建了子模型,这就创建了一个无限循环。我从子对象中删除了父对象的创建,现在我的所有测试都工作了!


我把“调试”改为“释放”,它又工作了(任何CPU)。


我有一个不同的解决方案来运行我的测试。我的全局包文件夹与。csproj中的不匹配 这是我的.csproj看起来的样子:

我不得不将我的版本更改为16.5.0,我发现它安装在我的全局包文件夹中。现在我的测试能够运行:


对我来说有用的是删除bin文件夹,然后重新构建项目。


相同的问题。实际发生的情况是,测试运行试图在我加载的一个网站项目中发现测试(网站内部有一些针对angular的jasmine规格)。

这导致运行程序挂起试图加载一些NodeJS容器

从Microsoft.NodejsTools.TestAdapter.TestContainer更新容器

我从解决方案中删除了网站(显然,只是解决方案,而不是删除网站!)

我也有一些损坏的配置数据,我必须清除在.vs目录下的TestStore文件夹下。

完成这两个步骤后,事情又神奇地开始工作了


还有另一个荒谬的例子:同一解决方案中的两个项目有相同的projd——其中一个是测试项目,这让测试运行者感到困惑。

删除并读取测试项目到解决方案更改了projectd并修复了问题。


好吧,我知道我迟到了,但在这里记录我的答案,以防有人面临类似的问题。这个问题我已经遇到过很多次了。90%的问题通过这两步解决

project > properties > Build > Platform target > x64 (x32)

Test -> Test Settings > Default Processor Architecture > X64 (x32)

然而,我发现了一个更常见的原因。解决方案文件经常改变开发人员系统,并且它们开始指向错误的mste . testadapter。特别是如果您正在使用nuget包的自定义路径。 我解决了这个问题

在记事本中打开.csproj文件。 手动更正对MSTest的引用。导入TestAdapter 像这样的指令。


我添加了<PackageReference Include="NUnit3TestAdapter" Version="3.16.1"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime;构建;本机;contentfiles;分析程序;buildtransitive < / IncludeAssets > < / PackageReference >

在我的测试中。csproj文件


我也有这个问题,我的解决方案是我需要让测试类“公共”。 我通过VS2019通过创建单元测试向导创建了测试类,默认情况下它不会公开。


当我在Visual Studio 2019社区版本16.9.1中使用selenium NUnit测试时,我也遇到了这个问题。其中一些建议是使用旧版本。但在我的案例中,实际的解决方案是添加Microsoft.NET.Test。Sdk" Version="16.0.1"包到项目中。

包包括在我的项目


我从测试资源管理器中选择了“调试选定测试”,而不是“运行选定测试”。


根据安装的运行时,您可能需要选择:

[右键单击测试项目]->属性->构建->平台目标-例如x86

将其设置为x64会导致“The framework 'Microsoft.NETCore. net”App', version '3.1.0' was not found."错误在测试错误输出。


这在VS2019中很管用。

移动测试到一个新的NUnit 3测试项目。所有测试都按原样运行。


请确保您选择了正确的项目类型。在我的例子中,我选择了“单元测试项目”,我应该有“xUnit测试项目”。


我有一个类似的问题,尝试了所有张贴的解决方案没有运气。2天后,最终发现是OneDrive导致了这个问题。

关闭OneDrive,等待一段时间,重启VS, BAM,又开始工作了!


确保您将测试项目与主应用程序项目引用。


通过运行带有责备选项的测试命令行,我设法找出了VS 2019/2022跳过一些测试的原因:

vstest.console.exe myproject-test.dll /blame

这将生成一个带有"Completed="False"测试的xml文件。

在我的例子中,测试主机进程在运行该测试时由于内存访问冲突而崩溃。内存访问冲突是由无限递归引起的。您可以右键单击并调试特定的测试。


也许是无限循环。

几乎有一半的测试没有运行。我对代码所做的新更改使测试产生了一个无限循环。在解决了这个问题(将正确的参数添加到正确的方法调用中)之后,每个测试都正常运行。

希望这能帮助到任何人-如果你正在向别人的代码添加新的逻辑,尝试调试没有运行的测试,也许你也进入了一个无限循环,VS刚刚停止了测试。


我有这个问题,原来我在测试类前漏掉了“public”。

在“显示来自:测试的输出”下对此有一个警告

"TestClass attribute defined on non-public class"

最初,我用。net库创建了测试项目,并添加了xunit和xunit.runner.visualstudio,但这并没有帮助我运行测试用例。

后来用xunit测试项目模板创建测试项目,自动添加覆盖。收集器,Microsoft.NET。Sdk, xunit, xunit。runner.visualstudio nuget包。现在我可以运行测试用例了。


面对这个问题,我的项目很大,有大量的测试用例,所以我必须弄清楚这个问题

我取消了“从c#和visual basic .net源文件中实时发现测试”选项

在工具->选项->测试->通用下


当同时使用MSTests和NUnit测试时,可以将它们混合使用。另外,移除其他测试框架的NuGet包。移除,清洁溶液,重建

情况是这样的:

[TestFixture]
public class NUnitTestClass
{
    [TestMethod]
    public void MSTestMethod()
    {
         // Will detect it but it won't run
    }
}

对于Visual Studio 2019和针对. net 5.0的测试项目,您还需要安装xunit.runner.visualstudio。所以,你的包应该像这个例子:

2.4.1 xunit () 2.4.3 xunit.runner.visualstudio ()


我在vs2022中遇到了同样的问题,但测试结果并不是模糊的,而是在运行后测试消失了。同样,在Test Explorer中没有显示任何结果。

我可以看到所有测试都在“输出”窗口中工作,但在“测试资源管理器”窗口中没有显示任何测试。

在我的情况下,重新安装vs2022解决了问题。


我在Visual Studio 2022 for Mac(预览)中创建一个单独的测试项目时遇到了这个问题。

重现步骤: VS 2022开放项目 右键单击解决方案,添加新项目 继续测试> nunit > 目标框架:NET 6.0 名称:random-tests > create mac的VS 2022包含一个覆盖的依赖项。收集器-删除此nuget引用修复了我的问题。


我发现一个测试项目在resharper运行良好,但在vs test中什么都没有运行。解决方案是缺少nuget包xunit.runner.visualstudio

我猜测试项目是由resharper开发的,所以他们从来没有意识到它不能在visual studio测试资源管理器中运行。


在我的情况下需要安装Microsoft.NET.Test.Sdk


TLDR:确保所有使用的项目都被显式引用

在我的例子中,我有一个net461单元测试项目,它编译良好,并且在显式地从测试资源管理器运行时运行良好。

当运行“所有测试”或运行“不运行测试”时,测试将中途停止(当它到达有问题的测试时)。

仅在测试控制台输出:

========== Test run aborted: 270 Tests (270 Passed, 0 Failed, 0 Skipped) run in 5,1 sec ==========

当我将单元测试项目转换为netcoreapp3.1时,编译器抱怨缺少项目引用。它被另一个被引用的项目引用(因此隐式可用)。

在添加了显式的项目引用之后,我可以恢复到net461,并且所有的单元测试都可以从测试资源管理器运行。


我能够通过删除(注释掉)TestMethods的deploymenttem属性来解决不运行测试用例的问题。 环境:

VS2022 net462 MSTest。TestAdapter 2.2.8 MSTest。TestFramework 2.2.8 Microsoft.NET.Test.Sdk 16.11.0


对我来说,问题是我的ClassInit()方法没有正确的签名。

MSTest类初始化和清理属性

特别要注意ClassInit()方法上的[ClassInitialize]属性。

工作原理:

[ClassInitialize]
public static void ClassInit(TestContext context)
{

}

没有工作:

[ClassInitialize]
public void ClassInit(TestContext context)
{

}

or

[ClassInitialize]
public static void ClassInit()
{

}

or

[ClassInitialize]
public void ClassInit()
{

}

答案是:

嵌入NUnit3TestAdapter作为Nuget包额外到NUnit。 稍后谢谢我


在VS 2022上挣扎了几个小时后,我的解决方案是同时安装: NUnit和NUnit3TestAdapter nuget包


对于.net核心项目,向以下添加引用修复了测试不运行或变灰的问题。

MSTest。TestAdapter


如果你正在使用NUnit,请确保添加nuget包

注意,VSIX测试适配器在VS 2019中已弃用,我们建议您使用适配器的nuget版本。这来自https://marketplace.visualstudio.com/items?itemName=NUnitDevelopers.NUnit3TestAdapter


微不足道,但在我的情况下,测试没有运行,因为构造函数是私有的。

我在输出窗口的测试下找到了这个。


我删除了。vs文件夹,测试资源管理器开始工作!


在这篇文章之后,我发现我必须添加一个引用并删除一个包。 我用的是vs 2022,但2019年也一样。发现此页有信息,以解决我的问题。我发现有两种方法可以解决。

我有框架4.8和参考微软。visualstudio . qualitytools . unittestframework

类[TestClass]和[TestMethod]是可见的,因为安装了一个包,但添加这些属性类定义在包和添加的UnitTestFramework引用。删除包并显示它可以运行和调试测试。

这是通过添加两个包来实现的。你可以添加一个包含第二个的包。

包Id是: Microsoft.UnitTestFramework.Extensions MSTest。TestFramework

我相信两个包添加比一个参考汇编更好:

C:\Program Files\Microsoft VisualStudio \2022\Professional\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll


我也有同样的问题。先问几个问题;

你使用VS 2022吗? 你安装了。net7(预览版)了吗? 你用NUnit吗?

(至少这是我安装的)

如果是这样,那我可能已经找到解决办法了。我在GitHub上看到了这个答案:https://github.com/nunit/nunit3-vs-adapter/issues/987。我刚刚将我的NUnit3TestAdapter NuGet包从4.2.1版本更新到4.3.0-alpha-net7.4,现在我可以再次运行所有的测试了。

NuGet链接:https://www.nuget.org/packages/NUnit3TestAdapter/4.3.0-alpha-net7.4

我在输出选项卡>“测试”下拉菜单中发现了这个错误消息,这帮助我确定了问题:

No test is available in C:\xx\Tests\xx\bin\Debug\xx.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
NUnit Adapter 4.2.0.0: Test discovery starting
Exception System.TypeInitializationException, Exception thrown discovering tests in C:\xx\UnitTests\bin\Debug\UnitTests.dll
The type initializer for 'NUnit.Engine.Services.RuntimeFrameworkService' threw an exception.
   at NUnit.Engine.Services.RuntimeFrameworkService.ApplyImageData(TestPackage package)
   at NUnit.Engine.Services.RuntimeFrameworkService.SelectRuntimeFramework(TestPackage package)
   at NUnit.Engine.Runners.MasterTestRunner.GetEngineRunner()
   at NUnit.Engine.Runners.MasterTestRunner.Explore(TestFilter filter)
   at NUnit.VisualStudio.TestAdapter.NUnitEngine.NUnitEngineAdapter.Explore(TestFilter filter) in D:\repos\NUnit\nunit3-vs-adapter\src\NUnitTestAdapter\NUnitEngine\NUnitEngineAdapter.cs:line 88
   at NUnit.VisualStudio.TestAdapter.NUnit3TestDiscoverer.DiscoverTests(IEnumerable`1 sources, IDiscoveryContext discoveryContext, IMessageLogger messageLogger, ITestCaseDiscoverySink discoverySink) in D:\repos\NUnit\nunit3-vs-adapter\src\NUnitTestAdapter\NUnit3TestDiscoverer.cs:line 82
InnerException: System.ArgumentException: Unknown framework version 7.0

(我发现这个问题已经有很多答案了,但我在这里找不到我的场景。)

在我的例子中(xUnit),线索在Visual Studio的“Test”输出日志中(见下面的截图)。

我的NuGet包都更新了——最新版本——到我需要一个更新的。net版本(略为6.0.13 vs 6.0.12),而我还没有安装。

我更新了Visual Studio并设法运行测试。