未找到 运行 的测试 - 而 debugging/running 单元测试用例 -- Visual studio 2017 15.5.1

No tests found to run - while debugging/running Unit test cases -- Visual studio 2017 15.5.1

Error : No tests found to run - while debugging/running C# Unit test cases -- Visual studio 2017 15.5.1 not discovering test cases.

框架 Microsoft.NET 框架 4.6.1

添加如下测试适配器 MSTest.TestAdapter.1.2.0 MSTest.TestFramework.1.2.0

测试资源管理器未显示测试用例。

升级 visual studio 后开始出现这种情况。 一些单元测试项目的测试用例不会在测试资源管理器中被发现。 当尝试调试或 运行 时,它说“没有找到 运行 的测试。”

我尝试删除项目并重新创建它..但没有成功。

输出 [2018 年 4 月 3 日 2:59:25 PM 信息] 未找到 运行.

的测试

我已经将 VS 更新到 15.6.4 删除 VS 测试缓存文件 DEL %TEMP%\VisualStudioTestExplorerExtensions 重新启动 Visual studio

已发现测试用例但未调试

我做了下面的事情,它解决了我的问题

  1. 我已经将 VS 更新到最新版本 15.6.4
  2. 正在删除 VS 测试缓存文件 DEL %TEMP%\VisualStudioTestExplorerExtensions
  3. 重新启动Visual Studio

然后测试用例被发现但没有调试。

错误如下:

Dependency finder domain): Loaded 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO17\ENTERPRISE\COMMON7\IDE\EXTENSIONS\TESTPLATFORM\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll'. Cannot find or open the PDB file.

其他 DLL 的类似错误如下:

C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO17\ENTERPRISE\COMMON7\IDE\EXTENSIONS\TESTPLATFORM\Microsoft.VisualStudio.TestPlatform.Common.dll'. Cannot find or open the PDB file.

所以PDB是Visual Studio使用的调试信息文件。这些是系统 DLL,您没有调试符号。

转到工具->选项->调试->符号和 select 复选框 "Microsoft Symbol Servers",Visual Studio 将自动下载 PDB。

然后我降级了:

MSTest.TestAdapter.1.2.0 至 1.1.18

MSTest.TestFramework.1.2.0 至 1.1.18

然后重新启动 VS studio 并重建。

仍然出现以下错误:

System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

然后我将版本设置为newVersion="4.0.0.0"

<dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.0.0.0" />
</dependentAssembly>

并开始调试。

问题

如果我没理解错的话,你观察到的是:

当你运行测试时,可以在控制台中看到以下内容:

[4/3/2018 2:26:13 PM Informational] ------ Run test started ------
[4/3/2018 2:26:14 PM Warning] No test is available in d:\...\UnitTestProject1.dll. Make sure that test discoverer & executors are 
registered and platform & framework version settings are appropriate and try
again.

测试浏览器显示:

可能会发生什么,我发生过几次,测试发现是为另一种架构设置的,而不是你当前设置的架构。

例子

您当前的配置是 x64

但是,默认测试设置可能有另一个(例如 x86):

解决方案

如果您_align 测试设置与当前架构 (x86 → x64),测试应该 运行。

如果解决方案配置一致,现在应该不需要手动清理了

伙计们

我遇到了同样的问题,并通过添加 [TestClass] 和 [TestMethod] 来修复它,并让我的 Selenium 自动化测试库在 VS 2015 上运行。

干杯,

[TestClass]
public class GigHubAutomatedTest
{

    [TestMethod]
    public void StartApplication()
    {

        using(IWebDriver googleDriver = new ChromeDriver())
        {

            // 1. Maximize the browser
            googleDriver.Manage().Window.Maximize();

            googleDriver.Navigate().GoToUrl("https://www.google.com/");

        }

    }

}

我安装了多个版本的 Nuget 包,我将它们合并到最新版本并解决了问题

MSTest.TestAdapter MSTest.TestFramework

已接受的答案单独对我不起作用,但与此同时起作用:

  1. 退出 MSVS
  2. 删除 .vs 文件夹(您可能会丢失一些仅与该解决方案相关的设置)
  3. 重启 MSVS
  4. 从接受的答案中,确保测试 -> 设置 -> Def Arch-> 与代码匹配
  5. 加载播放列表(如果适用)
  6. 建造
  7. 测试!

尝试清除位于 %TEMP% 目录中的临时文件 删除文件夹:%temp% 目录中的 VisualStudioTestExplorerExtensions

注:此路径一般在C:\Users\(yourusername)\AppData\Local\Temp

我遇到了同样的问题,确保将 TestClass 设置为 public !

[TestClass]
public class CSharp_JavaScript_ServerResponse_Test
{
}

在我的例子中,“构建 -> 清理解决方案”成功了。

此外,请确保您同时安装了 MSTest.TestFramework 和 MSTest.TestAdapter Nuget 包

截至今天,我使用 NUnit @ VSCode 和 .NET Core 5.0 缺少 Microsoft.NET.Test.SDK NuGet 包.. 一旦我将它添加到 ALL 测试程序集(即:解决方案 .sln 中的所有 .csproj 文件),一切正常。 HTH 致许多走到这一步的人。

这些 PackageReferences 在我的 TestProject.csproj

<ItemGroup>
  <PackageReference Include="NUnit" Version="3.13.1"/>
  <PackageReference Include="NUnit.Console" Version="3.12.0"/>
  <PackageReference Include="NUnit3TestAdapter" Version="4.0.0-beta.2"/>
  <PackageReference Include="NUnitTestAdapter" Version="2.3.0"/>
  <PackageReference Include="NUnit.Extension.NUnitProjectLoader" Version="3.6.0"/>
  <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0-release-20210422-02"/>
</ItemGroup>

确保您至少选择了其中一项(“总测试”、“通过测试”或“未通过测试”):

我的问题是我使用的是异步等待,return 类型无效。它需要是任务。 改变了这个:

public async void MyTest()

为此:

public async Task MyTest()

如果您不在单元测试方法中(例如,您有一个方法 Foo()然后你在其中放置一个断点并想要 运行 测试,以便它们导致断点被击中......如果你在 Foo() 的主体内选择 Debug Test(s) 则不会发生任何事情。 ..您必须转到测试资源管理器并选择 Debug 或使用快捷方式 Ctrl+T,Ctrl+R)。