【问题标题】:VS2017 and NUnit 3.9 No test is availableVS2017 和 NUnit 3.9 没有测试可用
【发布时间】:2018-03-26 16:06:04
【问题描述】:

我使用的是最新的 VS2017 版本 15.6.4、NUnit3TestAdapter 3.10.0 和 Nunit 版本 3.9.0.0。

当我尝试在测试资源管理器中运行单元测试时,测试显示为灰色,当我右键单击并运行选定的测试时,我看到以下错误:没有可用的测试 这是我的测试类的样子

    [TestFixture]
    public partial class ListViewBOTest
    {
    [Test]
     public void TestSearch_DateTime()
      {
        Assert.AreEqual(1,0);
      }

    }

输出文本:

[3/26/2018 10:53:55 AM Informational] ------ Run test started ------
[3/26/2018 10:53:55 AM Informational] NUnit Adapter 3.10.0.21: Test execution started
[3/26/2018 10:53:55 AM Informational] Running all tests in C:\Projects\MVPPlant\DEV\CMMSdg.Plant\CMMSdg.Plant\Sln.2010\CMMSdg.Plant.BusinessObjects.Test\bin\Debug\CMMSdg.Plant.BusinessObjects.Test.dll
[3/26/2018 10:53:56 AM Informational] NUnit failed to load C:\Projects\MVPPlant\DEV\CMMSdg.Plant\CMMSdg.Plant\Sln.2010\CMMSdg.Plant.BusinessObjects.Test\bin\Debug\CMMSdg.Plant.BusinessObjects.Test.dll
[3/26/2018 10:53:56 AM Informational] NUnit Adapter 3.10.0.21: Test execution complete
[3/26/2018 10:53:56 AM Warning] No test is available in C:\Projects\MVPPlant\DEV\CMMSdg.Plant\CMMSdg.Plant\Sln.2010\CMMSdg.Plant.BusinessObjects.Test\bin\Debug\CMMSdg.Plant.BusinessObjects.Test.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
[3/26/2018 10:53:56 AM Informational] ========== Run test finished: 0 run (0:00:01.0435303) ==========

【问题讨论】:

  • 只是因为我没有看到它在屏幕截图中也没有提到,我只是想仔细检查一下你的类顶部是否有 [TextFixture] 属性,其中包含测试方法是吗?
  • 是的,我有。我刚刚添加了一个示例测试。
  • 更新:评论解决方案中的单元测试类之一解决了问题。我仍然不知道该课程出了什么问题。仍在调查中。一旦我确定了问题所在,我将发布解决方案。
  • @JoakimM.H。这是 2015 年的要求。它最近被编辑。

标签: c# visual-studio visual-studio-2017 nunit


【解决方案1】:

【讨论】:

  • 或者使用 Nuget 将其添加到项目中:nuget.org/packages/NUnit3TestAdapter 这样其他签出项目的人都会自动获得它。
  • 将 Nunit3 的 testadapter 包更新到 3.10 对我有用..
  • 没错,适配器版本需要匹配NUnit版本
  • install-package NUnit3TestAdapter 来自包管理器控制台
【解决方案2】:

您可以检查以下步骤,看看它是否有效?

  1. 在 Visual Studio 菜单中,转到 Test > Test Settings > Default Processor Architecture 并记下是否选择了 X86X64
  2. 现在转到编写测试的项目的Properties 窗口中的Build 部分。确保将 Platform target 下拉菜单选择为 Any CPU 或至少与上述 step 1 中的架构相匹配。

现在,如果您构建解决方案并尝试运行这些测试,您应该会看到它们现在正在运行。

【讨论】:

  • 我所有的设置都和你上面描述的一样。所以这不是问题。
  • 啊...我不知道还有什么建议。我有一个使用 NUnit 的工作测试项目,通过设置不同的体系结构,我能够像你得到的那样产生错误。抱歉,对您没有帮助。
  • 更新:评论解决方案中的单元测试类之一解决了问题。我仍然不知道该课程出了什么问题。仍在调查。一旦确定问题所在,我将发布解决方案。 ——
  • 好的,这些单元类在自己的项目中在哪里?
  • 是的,所有单元测试类都在同一个项目中。
【解决方案3】:

我遇到了与 Amte Blessed 相同的问题,并且注释掉其他测试方法使测试资源管理器工作并运行我的测试

【讨论】:

    【解决方案4】:

    我发现我的构建事件是错误的。无效的复制命令把我所有的测试和半天都搞砸了:

    Copy C:\repo\Architecture\*.json $(ProjectPath)/Y
    Copy C:\repo\Architecture\*.json $(TargetPath) /Y
    

    而不是

    Copy C:\repo\Architecture\*.json $(ProjectDir)/Y
    Copy C:\repo\Architecture\*.json $(TargetDir) /Y
    

    【讨论】:

      【解决方案5】:

      “测试输出”窗口中的消息(“NUnit 无法加载 [程序集]”、“没有可用的测试...”等)可以隐藏导致运行程序无法加载测试程序集的潜在问题。这包括隐藏加载测试程序集或被测项的依赖项的失败。

      如果测试资源管理器窗口中显示了一个测试程序集,但测试拒绝运行,则值得暂时启用融合日志记录,以查看在尝试运行测试时是否发生任何程序集绑定错误。

      【讨论】:

        【解决方案6】:

        通过 nuget 安装 NUnit 后,测试已出现在测试资源管理器中 但是当我运行它们时,我得到“没有可用的测试”。 安装 NUnit 测试适配器解决了这个问题。

        【讨论】:

          【解决方案7】:

          我在使用 Xamarin.Forms 时遇到了类似的问题。 解决方案是从 NuGet 安装 NUnit.XForms 并添加

          <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
          

          到测试所在项目的 csproj 文件。

          【讨论】:

            【解决方案8】:

            对我有用的是删除位于%localappdata%\Microsoft\VisualStudio\&lt;version&gt;ComponentModelCache 文件夹

            【讨论】:

              【解决方案9】:

              您可能是 this problem 的受害者,该问题(理论上)已在 15.6.3 中解决。根据this answer,尝试删除您的%temp%\VisualStudioTestExplorerExtensions 文件夹。这已经解决了其他一些用户的问题。

              【讨论】:

              • 您的意思是删除整个文件夹 VisualStudioTestExplorerExtensions 还是其中的内容?
              • 您可以删除整个文件夹。如果丢失,它会自动创建
              • 只是确认您关闭了VS,删除了文件夹,然后重新启动了VS?如果这不起作用,当您简单地从命令行运行它时会发生什么?如果失败了,那么 VS 行为正常并且还有其他问题。也许你的代码不知何故?
              • 更新:评论解决方案中的单元测试类之一解决了问题。我仍然不知道那堂课出了什么问题。仍在调查中。
              • 我不知道为什么,但我没有名为“VisualStudioTestExplorerExtensions”的文件夹。对我有用的是删除位于 %localappdata%\Microsoft\VisualStudio\\ComponentModelCache 的文件夹
              【解决方案10】:

              除了使用测试资源管理器,您可以右键单击解决方案并从那里运行单元测试吗?

              【讨论】:

                【解决方案11】:

                遇到了同样的问题。在我的情况下,我发现如果您的测试项目包含对 MSTest 的引用,则测试资源管理器将不会使用 NUnit 测试适配器。通常是 Microsoft.VisualStudio.TestPlatform.TestFramework.dll,但还要检查您的 .csproj 文件中的“MSTest”和您的 packages.config 文件。

                我首先为 Visual Studio 测试启用诊断日志记录发现了这一点。这可以在“工具”->“选项”->“测试”->“日志级别”下找到。

                在我的日志中我发现了这个条目:

                [22/11/2018 10:36:42 诊断] 项目 C:\Git\myProject\src\myProject.Tests\myProject.Tests.csproj 引用测试适配器:MSTest.TestAdapter,版本 1.1.18

                【讨论】:

                  【解决方案12】:

                  这是由于内存问题造成的。

                  • 测试执行后清理对象

                  示例代码

                  private TestController testController;
                  
                  [OneTimeSetUp]
                  
                  public void TestSetup()
                  
                  {
                  
                  testController= new TestController();
                  
                  }
                  
                  
                  
                  [OneTimeTearDown]
                  
                  public void TestCleanup()
                  
                  {
                  
                  testController= null;
                  
                  }
                  
                  • 在设置中将测试执行更改为 64 位

                  测试 -> 测试设置 -> 默认处理器架构 -> x64。

                  【讨论】:

                    【解决方案13】:

                    我也遇到了同样的问题。

                    解决此问题的步骤 -

                     1. Install/Reinstall NUnit3TestAdapter package
                     2. Delete Debug folder from the Bin
                     3. Clean --> Build the project
                    

                    注意 - 还要确保正确安装所有软件包。

                    现在尝试执行测试。

                    【讨论】:

                      【解决方案14】:

                      我遇到了同样的问题,但在通过 NuGet 将“NUnit 3 TestAdapter 版本 3.16.1”安装到我的项目后已修复。

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 2016-10-24
                        • 2014-01-03
                        • 1970-01-01
                        • 2017-12-28
                        • 1970-01-01
                        • 2011-02-24
                        • 1970-01-01
                        • 2017-01-16
                        相关资源
                        最近更新 更多