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

时间:2013-10-10 14:18:37

标签: nunit

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

24 个答案:

答案 0 :(得分:172)

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

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

答案 1 :(得分:82)

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

答案 2 :(得分:57)

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

答案 3 :(得分:29)

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

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

答案 4 :(得分:22)

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

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

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

在右上角搜索' nunit'。

如果你有NUnit3测试适配器'安装后,使用找到的项目可以启用/禁用它。

enter image description here

答案 5 :(得分:10)

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

答案 6 :(得分:9)

这个答案看起来非常基本,但起初对我来说并不完全明显。如果您(重新)构建解决方案,它只会构建配置为在Build -> Configuration Manager

中构建的项目

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

答案 7 :(得分:7)

  1. 工具
  2. NuGet Package Manager
  3. 管理解决方案的NuGet包
  4. 浏览
  5. NUnitTestAdapter.WithFramework
  6. Ctrl + R,A来构建/运行测试
  7. enter image description here

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

答案 8 :(得分:7)

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

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

答案 9 :(得分:4)

检查您是否已说明 [TestFixureSetUp] 和 [测试]

在测试类中

样品:

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!");
      }
   }   
}

答案 10 :(得分:1)

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

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

答案 11 :(得分:0)

我使用 NUnit 3 并尝试了我在这里看到的大多数其他解决方案。这些都不适合我。

NUnit tests missing in test explorer

即使已经选择,在测试资源管理器中重新选择“播放列表:所有测试”选项也会在我的案例中显示所有隐藏的测试。每次重建后我都需要这样做。

答案 12 :(得分:0)

仅在这里添加$ .02,就在昨天遇到了类似的问题,我的168个测试都丢失了。我在这篇文章中尝试了所有内容-最特别是确保我的NUnit版本相同-都无济于事。然后我想起了我将自己的测验划分为播放列表的过程。 ,并且这些不会在您添加新测试时自动更新。因此,当我删除播放列表 BAM!时,我所有的测试又恢复了。

答案 13 :(得分:0)

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

答案 14 :(得分:0)

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

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

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

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

答案 15 :(得分:0)

确保您的测试课程是公开的。我经常犯这个错误然后我只是看代码 5 分钟发生了什么。

[测试]
public void YourTest() { ... }

答案 16 :(得分: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#核心。

答案 17 :(得分:0)

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

答案 18 :(得分:0)

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

答案 19 :(得分:0)

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

答案 20 :(得分:0)

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

答案 21 :(得分:0)

我遇到了op

提到的问题

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

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

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

我能够成功运行Nunit测试。

答案 22 :(得分:0)

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

如果右键单击它将显示版本。删除它 然后右键单击References&gt;添加参考。

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

这对我有用!

答案 23 :(得分:-1)

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