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

NUnit单元测试未显示在安装了测试适配器的测试资源管理器中,nunit,Nunit,我已经为VS2012+2013安装了NUnit测试适配器。当我第一次安装适配器时,适配器测试出现了,但由于某种原因,它们今天停止出现。在构建、重建、清理、重新启动之后,测试资源管理器中不会显示任何内容。为什么会发生这种情况?我使用的是VS2013 Ultimate。如果您的测试项目设置为以64位平台为目标,那么测试将不会显示在NUnit测试适配器中。这个答案看起来很基本,但一开始我并不完全清楚。如果您(重新)构建解决方案,它只构建配置为在build->Configuration Manager

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

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

这个答案看起来很基本,但一开始我并不完全清楚。如果您(重新)构建解决方案,它只构建配置为在
build->Configuration Manager


这是我的问题,我一定是无意中更改了生成配置设置或导致我的测试项目无法生成的东西(以前是)。因此,
testexplorer
窗口正在查看过时的DLL。我很清楚,在做了一次
清理
,看到我的大多数测试都消失了,并且在
重建
后没有回来……进一步检查
bin
文件夹后发现,这些项目根本没有被构建。

检查您是否已经声明 [测试固定设置] 和 [测试]

在测试课上

样本:

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顶部的菜单栏中,我可以选择“测试”->“测试设置”->“默认处理器体系结构”->“X64”。从“Build”菜单中选择“Rebuild Solution”后,我可以在测试资源管理器中查看所有测试。希望这能帮助将来的其他人=D.

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


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

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

  • 工具
  • NuGet包管理器
  • 管理解决方案的NuGet包
  • 浏览
  • nunitestadapter.WithFramework
  • Ctrl+R,用于生成/运行测试的

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

    在我的情况下,“NUnit3测试适配器”已被禁用。 要重新启用它,请转到“功能表”

    工具->扩展和更新

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

    在右上角搜索“nunit”

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


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

    如果右键单击,将显示版本。去掉这个 然后右键单击引用>添加引用

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


    这对我有用

    我遇到了op提到的问题

    我的情况是,我收到了一个旧项目,测试实际上是被测试系统的一部分。我想他们使用的是外部测试运行程序

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

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

    我成功地运行了Nunit测试

    如果您使用的是
    TestCaseSource
    属性,请确保源代码存在并尊重它,否则您的测试将不会被发现

    我必须卸载然后重新安装xunit.runner.visualstudionuget软件包。在尝试了上述所有建议之后,我尝试了这个方法,因此可能是多种因素的混合。

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

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


    在我的例子中,它有助于删除
    %localappdata%\Temp\VisualStudioTestExplorerExtensions
    。重新启动VS后,一切正常。

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


    将项目复制到物理服务器可以解决此问题

    如前所述,如果您使用的是VS 2017和.net core,您应该添加对测试框架NUnit 3.6.1、测试运行者NUnit3TestAdapter 3.8.0-alpha1和测试SDKMicrosoft.net.test.SDK 15.0

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

    我也有这个问题,但原因不同。我将VS2017与F#4.0一起使用

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

    以米计
      <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>