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

我已经为 VS2012 + 2013安装了 NUnit 测试适配器。当我第一次安装 Adapter 时,测试正在显示,但是由于某种原因,它们今天不再显示了。在构建、重新构建、清理、重新启动之后,测试资源管理器中不会显示任何内容。为什么会这样?我用的是 VS2013终极版。

128486 次浏览

如果您的测试项目被设置为以64位平台为目标,那么测试将不会显示在 NUnit Test Adapter 中。

这个答案看起来很简单,但一开始对我来说并不完全明显。如果您(重新)生成解决方案,它只生成配置为在 Build -> Configuration Manager中生成的项目

这是我的问题,我一定是无意中更改了一个构建配置设置或者什么东西,导致我的测试项目没有构建(当它们以前是)。因此,Test Explorer窗口查看的是过时的 DLL。在做了一个 Clean测试之后,我发现大部分测试都消失了,而且在做了一个 rebuild测试之后也没有再回来... ... 对 bin文件夹的进一步检查表明,这些项目根本就没有被建立起来。

检查你是否已说明 [ 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!");
}
}
}

我的测试程序集是64位的。从 Visual Studio 2012顶部的菜单栏中,我可以选择“ Test”-> “ Test Settings”-> “ Default Processor Architecture”-> “ X64”。在“ Build”菜单上的“重建解决方案”之后,我可以在测试资源管理器中看到所有的测试。希望这能在将来帮助到其他人。

检查 NUnit 版本是否不匹配。目前可用的 NUnit 测试适配器只适用于 NUnit 2.6.4及以下版本。 要将 NUnit 从3.x 版本降级到 Package Manager Console > update-Package NUnit-version 2.6.4

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

如果您使用的是 NUnit3 + 版本,那么有一个新的测试适配器可用。

进入“ Tools-> Extended and Update-> Online”,搜索 “ NUnit3测试适配器”,然后安装。

  1. 工具
  2. NuGet 软件包管理器
  3. 管理解决方案的 NuGet 包
  4. 浏览
  5. 与框架
  6. Ctrl + R,A 来构建/运行测试

enter image description here

使用 NUnitTestAdapter.WithFramework 可以确保 NUnit 和 NUnit Adapter 版本之间几乎没有/没有不一致(也就是说,“它可以正常工作”)

在我的情况下,“ NUnit3测试适配器”已被禁用。 要重新启用它,请进入菜单

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

在左边选择“安装”-> “所有”。

在右上角搜索“ nunit”。

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

enter image description here

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

如果你右击它会显示版本。删除它 然后右键单击“引用”> “添加引用”。

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

这招对我管用!

我经历了行动中提到的问题

我的情况是,我接手了一个旧项目,而测试实际上是正在测试的系统的一部分。我猜他们用的是外部测试运行器。

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

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

我成功地运行了 Nunit 测试。

如果您正在使用 TestCaseSource属性,请确保源存在并尊重 文件,否则您的测试将不会被发现。

我不得不卸载,然后重新安装 Xunit.runner. Visual Studio坚果软件包。在尝试了以上所有的建议之后,我尝试了这个方法,所以它可能是一个混合的东西。

我也遇到过类似的问题。我有正确的 NUnit 版本,在 NUnit 和适配器之间匹配的版本,以及正确标记的测试。我不是以管理员的身份运行 VS 2017企业版。以管理员身份启动 VS 后,测试出现了。

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

在我的情况下,它有助于删除 %localappdata%\Temp\VisualStudioTestExplorerExtensions。在 VS 重新启动后,一切工作像以前一样。

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

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

如果您正在使用 VS 2017和.net 核心,如上所述的 给你,您应该添加对测试框架 NUnit 3.6.1、测试运行程序 NUnit3TestAdapter 3.8.0-alpha1和测试 SDK Microsoft.NET.Test. Sdk15.0.0的引用。

我开始了一个包含测试项目的新解决方案,并将其与我最初的问题项目进行了比较。不知道为什么,原版里有个 App.config。我从项目中排除了这个文件,然后看到我的测试重新出现在测试资源管理器中。

我也有这个问题,但原因是不同的。我使用的是 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 # 核心。

确保您的测试用 Test 属性正确标记。如果所有的测试都只标记了 Explicity 属性,那么 TestAdapter 就不能识别装备。

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

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

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

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

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

仅仅在这里加上我的0.02美元,就在昨天,我遇到了一个类似的问题,我的168个测试丢失了。在这篇文章中,我尝试了几乎所有的方法——尤其是确保我的 NUnit 版本是相同的——但都没有用。然后我想起来我把测试分成了播放列表: 这些 < strong > 不会在添加新测试时自动更新。所以,当我删除播放列表 砰!时,我所有的测试又回来了。

我使用了 NUnit 3,并且尝试了我在这里看到的大多数其他解决方案,但没有一个对我有用。

NUnit tests missing in test explorer

即使已经选中,在测试资源管理器中重新选择“ Playlist: All Test”选项,在我的示例中也会显示所有隐藏的测试。每次重建之后我都要这么做。

确保您的测试类是公共的。我经常犯这个错误,然后我只是看了5分钟的代码是怎么回事。

[测试]
Public 使你的测试无效() { ... }

  1. 工具
  2. NuGet 软件包管理器
  3. 管理解决方案的 NuGet 包
  4. 浏览
  5. NUnit3TestAdapter (在我的例子中是 NUnit3. .)
  6. 安装完成后,应该可以使用 VisualStudio 安装包含的默认 TestExplorer。

NUnit3TestAdapter