NUnit单元测试未在安装了测试适配器的测试资源管理器中显示

问题描述 投票:135回答:22

我已经为VS2012 + 2013安装了NUnit测试适配器。当我第一次安装适配器时,测试显示出来了,但是他们今天因某种原因停止了显示。构建,重建,清理,重新启动后,测试资源管理器中不显示任何内容。为什么会这样?我正在使用VS2013 Ultimate。

nunit
22个回答
82
投票

如果您的测试项目设置为针对64位平台,则测试将不会显示在NUnit测试适配器中。


4
投票

检查您是否已声明[TestFixureSetUp]和[Test]

在测试课上

样品:

namespace ClassLibrary1
{
   public class SimpleCalculator
   {
      public Calculator _calculator;
      [TestFixtureSetUp]
      public void initialize()
      {
         _calculator = new Calculator();
      }
      [Test]
      public void DivideTest()
      {
         int a = 10;
         int b = 2;
         int expectedValue = a/b;
         int actualValue = _calculator.Divide(a, b);
         Assert.AreEqual(expectedValue, actualValue, "Functionality not working properly!");
      }
   }   
}

1
投票

导致此问题的另一个原因是,如果从映射驱动器打开项目 - Visual Studio正确处理此类项目,但显然Nunit不支持它们。

将项目复制到物理修复问题。


0
投票

我还发现当我卸载nunit v3.2.1时,v3.2.1的nunit框架参考仍然在我的解决方案资源管理器项目中。解决方案资源管理器> ProjectName>引用

如果右键单击它将显示版本。删除此然后右键单击引用>添加引用。

搜索版本2.x版本并添加然后重建解决方案。

这对我有用!


0
投票

我遇到了op提到的问题

我的情况是,我被交给了一个旧项目,测试实际上是被测系统的一部分。我假设他们正在使用外部测试运行器。

这个任务链为我解决了这个问题

  • 创建了一个测试项目,
  • 将测试文件移到那里
  • 添加引用,以便测试项目将编译
  • 将Nunit和Nunit适配器NuGet包添加到测试项目中
  • 重新编译

我能够成功运行Nunit测试。


0
投票

如果您使用的是TestCaseSource属性,请确保源存在且尊重the documentation,否则将无法发现您的测试。


0
投票

我必须卸载然后重新安装xunit.runner.visualstudio nuget包。我在尝试了所有上述建议后尝试了这一点,所以可能是混合了一些东西。


0
投票

我有一个类似的问题,其中测试没有被发现。我有正确的NUnit版本,NUnit和适配器之间匹配的版本,以及正确标记的测试。我作为管理员运行VS 2017 Enterprise。以管理员身份启动VS后,测试出现了。


0
投票

我开始了一个带有测试项目的新解决方案,并将其与我原来的问题项目进行了比较。由于某种原因,原始版本中有一个app.config。我从项目中排除了该文件,并看到我的测试重新出现在测试资源管理器中。


0
投票

我也有这个问题,但原因不同。我正在使用VS2017和F#4.0。

首先,Visual Studio中的控制台没有提供足够的详细信息,为什么无法找到测试;它将无法通过测试加载DLL。因此,在命令行中使用NUnit3console.exe,因为这会为您提供更多详细信息。

在我的情况下,这是因为测试适配器正在寻找更新版本的F#Core DLL(4.4.1.0)(F#4.1),而我仍在使用4.4.0.0(F#4.0)。所以我把它添加到测试项目的app.config中: -

  <dependentAssembly>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.0.0" />
  </dependentAssembly>

即重定向到较早的F#核心。


0
投票

我遇到了同样的问题,突然在测试资源管理器窗口中没有出现任何测试。我有“NUnit3TestAdapter”的更新版本

经过大量的搜索和努力,我发现需要在项目属性中设置以下值:[在解决方案资源管理器窗口中:右键单击项目>属性]在构建选项卡下,设置Platform = x64,并设置Platform target = x86或任何CPU构建项目,所有测试都将显示在“测试资源管理器”窗口中。

重要提示:在输出窗口中看到下一个msg后,我找到了解决方案:

“测试运行将使用为框架Framework45和平台X86构建的DLL。以下DLL不会成为运行的一部分:AutomationTests.dll是为Framework Framework45和Platform X64构建的。”


173
投票

如果您使用的是NUnit3 +版本,则可以使用新的测试适配器。

转到“工具 - >扩展和更新 - >在线”并搜索“NUnit3测试适配器”,然后安装。


0
投票

我有一些挂起的msbuild.exe进程。我不知道这是不是我的问题,但是在找到挂起的进程之前,重新安装各种NUnit适配器花了很多时间和错误。


0
投票

只是为了在这里添加我的$ .02,我昨天遇到了类似的问题,我的168个测试都丢失了。我在这篇文章中尝试了大部分内容 - 尤其是确保我的NUnit版本是相同的 - 一切都无济于事。然后我记得我把我的测试分成了播放列表;并且在添加新测试时这些不会自动更新。所以,当我删除播放列表时,BAM !,我的所有测试都再次回来了。


-1
投票

确保使用Test属性正确标记测试。如果所有测试仅使用Explicit属性标记,则TestAdapter无法识别夹具。


57
投票

我的测试程序集是64位的。从visual studio 2012顶部的菜单栏中,我可以选择“测试” - >“测试设置” - >“默认处理器架构” - >“X64”。在“Build”菜单中的“Rebuild Solution”之后,我能够在test explorer中看到我的所有测试。希望这有助于未来的其他人= D.


29
投票

检查NUnit版本是否不匹配。当前可用的NUnit测试适配器仅适用于NUnit 2.6.4及更低版本。要将NUnit从版本3.x降级,请转到程序包管理器控制台> update-package NUnit -version 2.6.4

http://jeremybytes.blogspot.co.ke/2015/11/review-of-unit-testing-makes-me-faster.html


23
投票

在我的情况下,'NUnit3测试适配器'已被禁用。要重新启用它,请转到菜单

工具 - >扩展和更新......

在左侧选择“已安装” - >“全部”。

在右上角搜索'nunit'。

如果您安装了“NUnit3测试适配器”,则可以使用找到的项目启用/禁用它。

enter image description here


10
投票

如果您正在使用VS 2017和.net核心,如here所述,您应该将测试框架NUnit 3.6.1的引用添加到测试运行器NUnit3TestAdapter 3.8.0-alpha1和测试SDK Microsoft.NET.Test.Sdk 15.0.0。


9
投票

这个答案看起来非常基本,但起初并不是很明显。如果你(重新)构建解决方案,它只构建配置为在Build -> Configuration Manager中构建的项目

这是我的问题,我必须无意中更改了构建配置设置或导致我的测试项目不能构建的东西(以前是这样)。因此,Test Explorer窗口正在查看过时的dll。我很清楚这是在做了Clean并且看到我的大多数测试消失并且在rebuild之后没有回来之后的情况......对bin文件夹的进一步检查显示这些项目根本没有建造。


8
投票

我有一个工作设置(对于NUnit2和NUnit3,取决于解决方案,以及2012年和2017年之间的Visual Studio的多个版本),它突然停止工作一天:在任何解决方案或版本的VS中都没有检测到任何测试。

就我而言,它有助于删除%localappdata%\Temp\VisualStudioTestExplorerExtensions。重新启动VS后,一切都像以前一样工作。


7
投票
  1. 工具
  2. NuGet包管理器
  3. 管理NuGet包以获得解决方案
  4. 浏览
  5. NUnitTestAdapter.WithFramework
  6. Ctrl + R,A来构建/运行测试

enter image description here

使用NUnitTestAdapter.WithFramework确保NUnit和NUnit适配器版本之间几乎没有不一致(即“它只是工作”)

© www.soinside.com 2019 - 2024. All rights reserved.