使用 .NET Core 运行单元测试 MSTest: "The following TestContainer was not found..."



我已经搜索了高低,找不到这个异常的答案。这个问题是我搜索时出现的主要问题,但它没有解决这个问题。

[7/8/2018 6:22:22 PM Informational] Executing test method 'CoreScraper.FlyerScraper.GetAllCurrentFlyers'
[7/8/2018 6:22:22 PM Error] System.InvalidOperationException: The following TestContainer was not found 'C:UsersUsernameDocumentsVisual Studio 2017ProjectsProductAppCoreScraperbinDebugnetcoreapp2.0CoreScraper.dll'
at Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider.<GetTestContainerAsync>d__61.MoveNext()

"CoreScraper"是该项目的名称。当我查看那个...netcoreapp2.0文件夹时,CoreScraper.dll肯定在那里。我正在通过右键单击测试方法并选择"运行测试"来运行测试。测试在我第一次运行时运行良好,但从那以后它给了我这个错误。我已经关闭了Visual Studio并重新打开,删除了bin的内容,清理并重建了项目等。

什么对我有用:

删除文件夹中.vs文件夹。

但是您仍然无法删除该文件夹?

可能是因为实时单元测试testhost.exetesthost.x86.exe过程是原因。

问题是未安装 NuGet 包Microsoft.NET.Test.Sdk。通过 NuGet 包管理器在项目中安装此包解决了该问题。

这对我来说并不直观,因为我有另一个单元测试项目,在没有Microsoft.NET.Test.Sdk包的情况下运行良好,但该项目是 .NET Framework 4.6.2。

今天,我在Visual Studio 2017 for xUnit Tests中遇到了类似的问题。 我的观察:

  1. 在发布/调试模式之间切换时出现问题。
  2. 解决方案:重新启动Visual Studio,它解决了问题。

注意经过一些Google/Bing之后,我发现每个人都通过安装一些软件包来获得解决方案。但是,就我而言,之前一切正常,因此决定不安装任何其他内容。

希望对您有所帮助。

正如@Marathon55所说,安装Microsoft.NET.Test.Sdk解决了问题,但就我而言,我必须再安装 2 个软件包MSTest.TestFramework&MSTest.TestAdapter可能会帮助某人。

我正在运行VS2019版本16.7.2。 我通过删除隐藏的测试存储文件夹(".vs[解决方案名称]\v16\TestStore")解决了我的问题。切换分支时,似乎存在于另一个分支中的单元测试项目缓存在该 TestStore 文件夹中。

我不知道这是否对任何人有帮助,但我在尝试针对 .net Standard 的 Specflow 项目中遇到了这个问题。最后,解决此问题的唯一方法是以 .net Core 为目标。

这就是我的情况。

  1. 我的视觉工作室解决方案有 9 个项目
  2. 我从解决方案中删除了一个测试项目,但仍保留在磁盘上
  3. 从磁盘中删除上述测试项目
  4. Visual Studio 的测试资源管理器仍然显示已删除项目中的测试,但无法运行它们(因此显示 OP 提到的错误)
  5. 删除.vs文件夹最终删除了旧项目的所有引用。现在,测试资源管理器显示预期的测试数。

当我将新测试项目添加为"类库"项目而不是"单元测试项目"时,我遇到了这个问题。它找到了我的测试,但无法运行它们。

通过删除类库项目并使用新的单元测试项目重新开始来修复它。

我遇到了这个问题。我尝试了这个问题中发布的所有答案。在我的实例中,出了什么问题 - 有人错误地修改app.config文件。结果,该文件在其中获得了一个新的配置部分,但没有定义此部分。

缺少<configSections></configSections>

虽然有<someConfigSection . . . . />

我只是修复了app.config,测试开始工作。 这是最初建议的来源,即app.config可能是此问题的罪魁祸首

我使用的是.NET Framework v4.6.1,而不是.NET Core,但我也遇到了这个完全相同的错误。我遵循了上面男人/女孩提供的步骤的组合。

  • 安装 MSTest.TestAdapter NuGet 包
  • 安装 MSTest.TestFramework NuGet 包
  • 安装 Microsoft.NET.Test.Sdk NuGet 包(可能不需要??不确定)
  • 关闭 VS 2019 的所有正在运行的实例并删除 VS/文件夹
  • 重新开放VS 2019
  • 重新生成测试项目

。然后它就奏效了。希望这对某人有所帮助!

我在.NET Core项目中遇到了同样的问题。以下是解决方法:

  1. 创建空文件夹(所需的任何名称)
  2. 运行命令">dotnet new mstest"。 此命令创建一个单元测试项目,其中包含所有必需的 nuget 包! 然后你可以检查.csproj文件,这里是:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>my_project_unittest</RootNamespace>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0">
<PackageReference Include="MSTest.TestAdapter" Version="2.1.0" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.0" />
<PackageReference Include="coverlet.collector" Version="1.2.0" />
</ItemGroup>
</Project>

就我而言,我弄乱了测试项目,并在某个时候决定将配置从:

<Project Sdk="Microsoft.NET.Sdk">

<Project Sdk="Microsoft.NET.Sdk.Web">

但后来撤消了更改.. :)

然后我和这里的每个人都面临着同样的问题。在进行了无数次重建,禁用锐化器,清理缓存,文件夹,降级包,删除包等之后。- 我决定创建一个新的测试项目并比较配置(令人惊讶的是,新项目的测试在调试模式下工作)!

长话短说 - 检查Properties文件夹。测试项目不应该有这样的文件夹!该文件夹可能是在我之前更改 SDK 版本时创建的。

删除此文件夹并重建项目后,我终于能够调试测试了!没有其他解决方案有效。

我在使用 .Net Core 运行 MSTest 测试项目时遇到了这个问题。就我而言,问题与Microsoft.NET.Test.Sdk最新版本(17.4.0)有关。将版本降级到以前的稳定版(17.3.2)解决了我的问题。

相关内容

最新更新