没有测试发现 - 在调试/运行单元测试用例时 - Visual Studio 2017 15.5.1

时间:2018-04-03 09:55:03

标签: visual-studio unit-testing testing mstest

错误:未发现运行测试 - 在调试/运行C#单元测试用例时 - Visual Studio 2017 15.5.1未发现测试用例。

框架 Microsoft.NET框架4.6.1

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

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

升级后的Visual Studio开始发生这种情况。 某些单元测试项目测试用例在测试资源管理器中未被发现。 当尝试调试或运行它时说"没有发现测试运行。"

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

输出 [4/3/2018 2:59:25 PM信息]未发现任何测试。

更新

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

已发现测试用例但未调试

10 个答案:

答案 0 :(得分:12)

问题

如果我理解正确,你会发现这是:

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

[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.

并且测试资源管理器显示:

no test found to run

可能发生了什么,并且在我身上发生了几次,测试发现是针对另一个架构设置的,而不是您当前设置的架构。

实施例

您当前的配置为 x64

current configuration

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

default test settings

解决方案

如果您使用当前架构(x86→x64)对齐测试设置,则应运行测试。

successful run

如果解决方案配置一致

,现在不需要手动清理

答案 1 :(得分:2)

截至今天,我使用 NUnit @ VSCode 和 .NET 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>

答案 2 :(得分:1)

我安装了可能的Nuget软件包版本,将它们合并为最新版本,并解决了问题

MSTest.TestAdapter MSTest.TestFramework

答案 3 :(得分:1)

在我的情况下,“构建->清洁解决方案”解决了问题。

答案 4 :(得分:0)

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

  1. 我已将VS更新到最新版本15.6.4
  2. 删除VS测试缓存文件DEL%TEMP%\ VisualStudioTestExplorerExtensions
  3. 重新启动Visual Studio
  4. 然后发现测试用例但没有调试。

    这是错误的

    “依赖查找程序域”:已加载'C:\ PROGRAM FILES(X86)\ MICROSOFT VISUAL STUDIO \ 2017 \ ENTERPRISE \ COMMON7 \ IDE \ EXTENSIONS \ TESTPLATFORM \ Microsoft.VisualStudio.TestPlatform.ObjectModel.dll'。无法找到或打开PDB文件。“

    以及其他dll的类似错误如下

    C:\ PROGRAM FILES(X86)\ MICROSOFT VISUAL STUDIO \ 2017 \ ENTERPRISE \ COMMON7 \ IDE \ EXTENSIONS \ TESTPLATFORM \ Microsoft.VisualStudio.TestPlatform.Common.dll'。无法找到或打开PDB文件。

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

    转到工具 - >选项 - &gt;调试 - &gt;符号并选中复选框“Microsoft符号服务器”,Visual Studio将自动下载PDB。

    然后我降级了

    MSTest.TestAdapter.1.2.0至1.1.18

    MSTest.TestFramework.1.2.0至1.1.18

    然后重新启动VS studio并重建

    仍然出现以下错误

    “System.IO.FileNotFoundException:无法加载文件或程序集'System.Net.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。系统找不到指定的文件。“

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

             

    它开始调试。

答案 5 :(得分:0)

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

干杯

[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/");

        }

    }

}

答案 6 :(得分:0)

被接受的答案对我来说不是孤立的,但它确实可以做到:

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

答案 7 :(得分:0)

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

注意:该路径通常位于C:\Users\(yourusername)\AppData\Local\Temp

答案 8 :(得分:0)

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

[TestClass]
public class CSharp_JavaScript_ServerResponse_Test
{
}

答案 9 :(得分:0)

还要确保同时安装了MSTest.TestFramework和 MSTest.TestAdapter Nuget程序包