我只是尝试使用 nuGet 安装 nUnit 测试运行器,但我看不到如何执行测试运行器。当我安装包时,它似乎在运行,当我尝试从 nuget 控制台安装时,它表明包已经安装——但我没有看到任何跑步者的迹象。
如果重要的话,我会在 UAC 上运行,并且我不会以管理员身份运行 VS。
注意:我确实通过安装 nUnit MSI 来实现这一点,并且我确实开始使用 VS 2012 插件。但是,nuget 包不起作用,这让我很烦恼。所以,在学术上,我想知道我错过了什么。
我只是尝试使用 nuGet 安装 nUnit 测试运行器,但我看不到如何执行测试运行器。当我安装包时,它似乎在运行,当我尝试从 nuget 控制台安装时,它表明包已经安装——但我没有看到任何跑步者的迹象。
如果重要的话,我会在 UAC 上运行,并且我不会以管理员身份运行 VS。
注意:我确实通过安装 nUnit MSI 来实现这一点,并且我确实开始使用 VS 2012 插件。但是,nuget 包不起作用,这让我很烦恼。所以,在学术上,我想知道我错过了什么。
NUnit 测试运行器实际上直接集成到现有的 Visual Studio 测试运行器(测试资源管理器)中(从菜单:Test-> Windows-> Test Explorer)。因此,它不会出现在任何地方。只需将 NUnit 测试添加到您的项目中,它们现在就会神奇地出现在测试资源管理器中,并在您点击>按钮时运行。
您需要使用Visual Studio 库或Tools->Extensions and Updates菜单中的测试运行程序,而不是 NuGet 包。原因是 Test Runner 安装到 Visual Studio 中(而不是安装到您的项目中)。
正如@Jan 提到的,现在有一个NUnit.Runners
包,您也可以将其添加到您的解决方案中。这应该为命令行构建添加 NUnit 运行程序,但这不会将 NUnit VisualStudio 测试运行程序注册到 Visual Studio。NUnit Runners 允许您从命令行 (msbuild) 运行测试。您还可以通过使用vstest.console.exe
Visual Studio 目录中的 运行测试来完成此操作:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
.
随着对 Visual Studio 2013 的更新,Microsoft 允许将测试运行程序作为NuGet 包附加到项目中。这样,它们会自动与您的项目保持同步,并且可以设置为自动更新。也不需要在构建服务器上安装测试运行器。
当您使用 NuGet Pacakage Manager 安装 NUnit.Runners 包时,它会在 下创建并填充 NUnit.Runners 文件夹[SolutionDir]\packages
,但该文件夹不会在项目构建时自动更新或恢复,因为安装程序不会将 NUnitRunners 条目放入项目中的packages.config
文件。
如果您希望包在构建时自动恢复,您可以将缺少的行添加到packages.config
:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NUnit" version="2.6.2" targetFramework="net45" />
<package id="NUnit.Runners" version="2.6.2" targetFramework="net45" />
</packages>
我不确定这是否有任何缺点,但似乎有效!