无法使用Visual Studio调试NUnit测试

3

2
你试过关掉再打开吗? - Juan Carlos
你查看了哪个配置文件?你必须在nunit.exe.config中添加<supportedRuntime version="v4.0.30319" />。 - Amy B
是的。我切换了断点,重启了开发机器,甚至升级了 Nunit。 - Bill Martin
将其添加到nunit.exe.config中。仅仅为了好玩,我也将其添加到其他的nunit配置文件中(nunit-agent、nunit-agent-x86、nunit-console-x86)。 - Bill Martin
你尝试过将调试器附加到nunit-agent进程而不是nunit进程吗? - Matthew Strawbridge
找不到nunit-agent。我在升级之前就在那里了,现在却看不到它了。试图启动它,但无法启动。出现了“遇到错误”的提示。可能是我的问题。 - Bill Martin
10个回答

3

您只能在VS Studio社区版中调试nunit测试。为此,您需要安装Nunit3testAdpter。您可以在“工具”->“扩展和更新”中添加此项,或从Nuget包中获取。


请修改您的答案,因为"Nunit3testAdpter"不再作为扩展名可用。它现在是一个同名的NuGet包。这真正地解决了问题,但请注意它现在是一个包而不是扩展名。 - Ibrahim

2
这是一个早就应该解决的问题,但我还没有看到在Visual Studio内直接调试NUnit测试的解决方案。这是相当容易的,而且无需任何第三方工具。你所要做的就是配置你的测试项目(只是一个普通的类库项目),以便在你按下 F5Ctrl-F5(仅运行,不调试)时启动NUnit测试运行程序。

特别是你需要配置你的项目属性来启动外部程序:

Project configuration

详细的配置步骤在这篇博文中有很好地描述。它建议使用NuGet获取NUnit测试运行器,并配置项目在尝试运行你的库项目时执行运行器。如此简单,没有使用任何非免费的特定工具


1
这可能是由于多种原因造成的。如果您的应用程序目标框架与NUnit不同,则无法进行调试,因为测试实际上是由nunit-agent.exe运行的。
对于我来说,我的应用程序使用的是4.5,但NUnit使用的是3.5。(您可以从NUnit GUI应用程序之一中找到此信息->帮助->关于)
要解决此问题,请更改nunit.exe.config文件以包含以下内容,在配置部分内:
<startup>
  <requiredRuntime version="4.0.30319" />
</startup>

1
这也可能发生在您的PDB生成设置为嵌入式时。将其切换到完整将允许nunit测试适配器以调试器附加的方式启动。此时,它可以切换回嵌入式,然后再次进行调试。
该设置位于项目属性页面上,在“生成”选项卡中,然后单击“高级”按钮。我总是选择顶部的“所有配置”,以确保在构建发布配置程序集时发出有用的PDB(或嵌入信息)。enter image description here

0
请升级NUnit测试扩展并关闭Visual Studio,这样Visx(可能拼写)将运行并更新NUnit工具。完成后,您可以打开项目并运行NUnit测试项目。测试将会运行。我已经进行了准确测试。

0

我最近遇到了类似的问题。将项目平台更改为 AnyCPU 对我有帮助。还值得检查以下几点:

1)检查 NUnit 的最新版本(我使用的是 2.5.7,更新到了 2.6.2) 2)测试项目的目标框架。我使用的是 .NET 4.0(在 VS2010 中可以在“属性”->“应用程序”下找到)


0

至少在vs2010之前,调试器只能调试32位应用程序而不能调试64位应用程序。

使用vs2010时,我正在使用32位nunit.exe版本并使用“附加到调试器”。这对我来说效果很好。


0
前几天我在进行 NUnit 调试时未能命中断点。花了一段时间才意识到有人将测试用例复制粘贴到另一个文件中,我运行的是与断点不同的测试用例。

-1

尝试将测试更改为x64。从菜单中执行以下操作

测试 -> 测试设置 -> 默认处理器架构 -> x64


-3

我认为你不能使用Visual Studio进行调试。最好安装TestDriven.NET。

然后:

  1. 在测试方法上设置断点
  2. 右键单击测试方法
  3. 选择“TestWith->Debugger”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接