我已经为 VS2012 + 2013 安装了 NUnit 测试适配器。当我第一次安装适配器测试时出现了,但由于某种原因它们今天停止出现。在构建、重建、清理、重新启动之后,测试资源管理器中没有显示任何内容。为什么会发生这种情况?我正在使用 VS2013 Ultimate。
25 回答
如果您使用的是NUnit3+ 版本,则有一个新的测试适配器可用。
转到“工具 -> 扩展和更新 -> 在线”并搜索“NUnit3 测试适配器”,然后安装。
如果您的测试项目设置为针对 64 位平台,则测试不会显示在 NUnit 测试适配器中。
我的测试程序集是 64 位的。从 Visual Studio 2012 顶部的菜单栏中,我可以选择“测试”->“测试设置”->“默认处理器架构”->“X64”。在“构建”菜单中的“重建解决方案”之后,我能够在测试资源管理器中看到我的所有测试。希望这对将来的其他人有所帮助=D。
检查 NUnit 版本是否不匹配。当前可用的 NUnit 测试适配器仅适用于 NUnit 2.6.4 及以下版本。要从版本 3.x 降级 NUnit,请转到包管理器控制台 > update-package NUnit -version 2.6.4
http://jeremybytes.blogspot.co.ke/2015/11/review-of-unit-testing-makes-me-faster.html
这个答案似乎很基本,但起初对我来说并不完全明显。如果您(重新)构建解决方案,它只会构建配置为在Build -> Configuration Manager
这是我的问题,我一定是无意中更改了构建配置设置或导致我的测试项目无法构建的东西(以前是这样的)。所以Test Explorer
窗口正在查看过期的dll。对我来说很清楚,这是在做了 a并且看到我的大部分测试消失并且在...进一步检查文件夹Clean
后没有回来之后的情况,这些项目根本没有被构建。rebuild
bin
我有一个有效的设置(对于 NUnit2 和 NUnit3,具体取决于解决方案,以及 2012 年至 2017 年之间的多个版本的 Visual Studio),但有一天它突然停止工作:在任何解决方案或版本的 VS 中都没有检测到测试。
就我而言,它有助于删除%localappdata%\Temp\VisualStudioTestExplorerExtensions
. 重新启动 VS 后,一切正常。
如果您使用的是VS 2017 和 .net 核心,如此处所述,您应该添加对测试框架NUnit 3.6.1、测试运行程序 NUnit3TestAdapter 3.8.0-alpha1和测试 SDK Microsoft.NET.Test.Sdk的引用15.0.0。
检查您是否已声明 [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!");
}
}
}
我不得不卸载然后重新安装xunit.runner.visualstudio nuget 包。在尝试了上述所有建议后,我尝试了这个,所以可能是混合的东西。
此问题的另一个原因是如果您从映射驱动器打开项目- Visual Studio 可以正确处理此类项目,但显然 Nunit 不支持它们。
将项目复制到物理上解决了这个问题。
我还发现,当我卸载 nunit v3.2.1 时,v3.2.1 的 nunit 框架参考仍在我的解决方案资源管理器中的项目中。解决方案资源管理器 >项目名称> 参考
如果您右键单击它将显示版本。删除此然后右键单击参考>添加参考。
搜索版本 2.x 版本并添加然后重建解决方案。
这对我有用!
我遇到了op提到的问题
我的情况是,我收到了一个旧项目,而测试实际上是被测系统的一部分。我假设他们正在使用外部测试运行器。
这个任务链为我解决了这个问题
- 创建了一个测试项目,
- 将测试文件移到那里
- 添加了引用,以便测试项目可以编译
- 将 Nunit 和 Nunit 适配器 NuGet 包添加到测试项目
- 重新编译
我能够成功运行 Nunit 测试。
如果您正在使用该TestCaseSource
属性,请确保源存在并尊重文档,否则您的测试将不会被发现。
我有一个类似的问题,即没有发现测试。我有正确的 NUnit 版本,NUnit 和适配器之间匹配的版本,以及正确标记的测试。我不是以管理员身份运行 VS 2017 Enterprise。以管理员身份启动 VS 后,测试出现了。
我开始了一个新的解决方案,其中包含一个测试项目,并将其与我原来的问题项目进行了比较。出于某种原因,原始版本中有一个app.config。我从项目中排除了该文件,并看到我的测试重新出现在测试资源管理器中。
我也有这个问题,但原因不同。我正在使用带有 F# 4.0 的 VS2017。
首先,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# 核心。
我遇到了同样的问题,突然任何测试都没有出现在测试资源管理器窗口中。我有“NUnit3TestAdapter”的更新版本
经过大量搜索和努力,我发现我需要在项目属性中设置以下值:[在解决方案资源管理器窗口中:右键单击项目>属性]在构建选项卡下,设置平台=x64,并设置平台目标=x86或任何 CPU 构建项目,所有测试都将出现在测试资源管理器窗口中。
重要提示:在输出窗口中看到下一条消息后,我找到了解决方案:
“测试运行将使用为框架 Framework45 和平台 X86 构建的 DLL。以下 DLL 将不属于运行:AutomationTests.dll 是为 Framework Framework45 和平台 X64 构建的。”
我有一些挂起的 msbuild.exe 进程。我不知道这是否是我的问题,但在我发现挂起的进程之前,我在重新安装各种 NUnit 适配器时花了很多时间和错误。
只是在这里添加我的 $.02,我昨天遇到了一个类似的问题,我的 168 个测试丢失了。我尝试了这篇文章中的大部分内容 - 尤其是确保我的 NUnit 版本相同 - 都无济于事。然后我记得我把我的测试分成了播放列表。当您添加新测试时,这些不会自动更新。所以,当我删除播放列表时,BAM!,我所有的测试又回来了。
确保您的测试课程是公开的。我经常犯这个错误然后我只看代码 5 分钟是怎么回事。
[测试]
public void YourTest() { ... }
确保您的测试正确标记了 Test 属性。如果所有测试都只标记了 Explicit 属性,则 TestAdapter 无法识别夹具。