单位拒绝在程序集中进行dsicover或运行我的测试。这不是单位产生错误消息的情况,例如"无法在汇编中找到测试"。它根本没有发现我有测试。
我右键单击测试方法,测试输出显示:
发现测试开始------ 发现测试结束:0找到(0:00:00,0260026)"
我已尝试过这篇文章中提到的所有内容: NUnit doesn't find tests in assembly
升级不是可能的。处理器体系结构设置正确。我的测试是公开的,并且具有所有正确的标签。
这是我项目中的一些代码,我甚至无法执行。我知道,因为我在开始时有一个断点。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
namespace UnitTestProjects
{
[TestFixture]
public class SomeRandomTests
{
[Test]
public void ShouldFail()
{
Assert.AreEqual(1, 0);
}
[Test]
public void ShouldPass()
{
Assert.AreEqual(1,1);
}
}
}
我正在运行内部visual studio test explorer。单元框架版本2.5.9.10348,运行时版本v2.0.50727。我安装了单元测试采用者。我试图重新安装它但没有成功。
答案 0 :(得分:32)
您必须安装NUnit VSAdapter vsix扩展,或者将适配器作为nuget包添加到您的解决方案中。
最新版本是2.0,vsix可在此处找到:https://visualstudiogallery.msdn.microsoft.com/6ab922d0-21c0-4f06-ab5f-4ecd1fe7175d
可以在此处找到nuget包:http://www.nuget.org/packages/NUnitTestAdapter/
有关这些选项的更多信息可以在此MSDN ALM帖子http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/11/part-3-unit-testing-with-traits-and-code-coverage-in-visual-studio-2012-using-the-tfs-build-and-the-new-nuget-adapter-approach.aspx中找到,该帖子也指向两个早期帖子。
如果查看“测试”下的“输出”控制台窗口,则运行时会显示适配器名称和版本。如果它没有出现,则适配器不活动。
如果运行Resharper,请确保您拥有最新的8.2版本,之前与测试适配器和resharper存在冲突。
即使您无法将此项目从NUnit 2.5.9升级到最新的2.6.4,您也可以使用2.6.4验证适配器在测试项目中是否正常工作。
我刚用NUnit 2.5.9检查了我自己的机器,这对2.0适配器很有用。
<强>更新强>
对于VS2017,您不要安装NUnit VSAdapter vsix扩展,而是从Visual Studio 2012(Update 1)开始安装NUnit 3 TestAdapter。这适用于NuGet包:NUnit 3.9.0。
答案 1 :(得分:2)
Mine就像是一样,但不同的是我创建了我的项目作为VS UnitTest项目,而不是一个普通的DLL。所以我创建了一个DLL并引用了所有nunit程序集,现在发现了测试。
希望这有帮助。
答案 2 :(得分:1)
从Visual Studio 2013升级到VS 2017时遇到同样的问题。 在我的例子中,所有测试都是针对NUnit 2(而不是3)编写的,并且在VS 2013中运行良好。一旦安装了VS2017,就无法找到任何测试。
问题是VS2017没有在我的VM上自动获取NUnit 2安装。
解决方案是通过单击Tools菜单安装Nunit 2测试运行器, 工具|扩展和更新。接下来,在右侧列表中选择Online,然后在Search框中输入“NUnit”。然后,您可以添加适当的NUnit测试运行器。
这可能适用于除MSTest之外的所有测试跑步者。
答案 3 :(得分:1)
在我的情况下,我使用了TestCaseSource属性。并传递了错误的sourceName。
//deny other Roles Beside Admin
[Authorize(Roles = "Admin")]
public ActionResult AdminOnly()
{
return View();
}
修复后,所有测试都会出现在测试资源管理器中
答案 4 :(得分:0)
NUnit30Settings.xml可能存在问题。我有这个问题。在我的情况下文件是空的。我不知道是什么原因。我将设置从NUnitSettings.xml复制到NUnit30Settings.xml。这解决了我的问题。带有设置的文件位于... Users \ [User] \ AppData \ Local \ NUnit。
答案 5 :(得分:0)
对于我的情况VS2017,在安装Unit Test Adopter 3之后,我只是使用Nuget软件包管理器将DLL的更新版本添加到我的解决方案中。
答案 6 :(得分:0)
我也面临着同样的问题。我的测试没有被发现。从nuget软件包管理器安装NUnit3TestAdapter dll后,解决了我的问题。我的Visual Studio版本是vs2017。
答案 7 :(得分:0)
这里没有什么要检查的。 1)确保我们在测试项目中引用了正确的dll。在我们的情况下 NUnit3testAdapter 2)我们必须重新启动Visual Studio,以便我们的新安装扩展程序生效。
即使在尝试了所有这些方法之后仍然无法正常工作,但将其安装为工具扩展和更新的一部分,并从此处安装NunitTest适配器。 这肯定应该起作用。
答案 8 :(得分:0)
我遇到了这个问题,如果我安装了NUnit和MSTest框架,则可以使用提供的示例代码来重现它,这会导致发现0个测试的问题。
一旦我删除了MSTest.TestAdapapter和MSTest.TestFramework,上面的示例代码就可以正常工作了。
然后,我必须在自己的代码中将属性从MSTest更改为NUnit属性,例如[TestClass]到[TestFixture]。
所以基本上检查一下您是否没有添加任何冲突的红色包。
答案 9 :(得分:0)
在我的情况下,显示“发现测试已完成-找到0个”消息的原因是我尚未运行Nuget软件包的更新。
转到工具-> Nuget软件包管理器->管理解决方案的Nuget软件包,然后单击“更新”选项卡。从那里,您可以将新集更新更新为已安装的Nuget软件包。