Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 我是否可以使NUnit GUI在断点/测试失败时进入Visual Studio调试器?_.net_Visual Studio_Nunit_Debugging - Fatal编程技术网

.net 我是否可以使NUnit GUI在断点/测试失败时进入Visual Studio调试器?

.net 我是否可以使NUnit GUI在断点/测试失败时进入Visual Studio调试器?,.net,visual-studio,nunit,debugging,.net,Visual Studio,Nunit,Debugging,使用NUnit GUI运行单元测试时,是否有以下方法: 在测试中设置断点 或者在测试失败时闯入VisualStudio实时调试器 将Visual Studio调试器附加到NUnit进程,然后在NUnit GUI中运行测试。如果将Visual Studio调试器附加到NUnit进程并在NUnit中执行测试,则将使用Visual Studio中的断点 我不知道在测试失败时如何做到这一点。您的第一个要求非常简单。将VS调试器附加到NUnit GUI(工具->附加到进程),并相应地设置断点。当测试在附

使用NUnit GUI运行单元测试时,是否有以下方法:

  • 在测试中设置断点
  • 或者在测试失败时闯入VisualStudio实时调试器

将Visual Studio调试器附加到NUnit进程,然后在NUnit GUI中运行测试。

如果将Visual Studio调试器附加到NUnit进程并在NUnit中执行测试,则将使用Visual Studio中的断点


我不知道在测试失败时如何做到这一点。

您的第一个要求非常简单。将VS调试器附加到NUnit GUI(工具->附加到进程),并相应地设置断点。当测试在附加了调试器的情况下运行时,将命中断点

第二个要求也很简单,但我还没有验证它是否有效(也就是说,我知道它会崩溃,但我不知道它离用户代码有多远)。当单元测试失败时,NUnit框架会引发
NUnit.framework.AssertionException
。将调试器设置为在引发此异常时中断,这样就不需要在代码中设置断点。要执行此操作,请访问调试->异常…,然后选择添加…。选择公共语言运行时异常,然后输入NUnit异常的完整类型名(包括名称空间)。最后,在原始异常屏幕中,选择新异常并单击抛出的


同样,您需要在附加调试程序的情况下运行测试,以便在抛出异常时捕获它。

不要为附加到进程而烦恼。那会很快变老。相反,请转到单元测试项目的属性,并在“调试”选项卡上设置“启动外部程序:”以指向nunit.exe,并在“命令行参数”文本框(例如UnitTests.dll)中添加输出dll名称。

除了在运行测试时附加到nunit进程外,还可以临时添加

Debugger.Launch()

在SetUpFixture或TestFixtureSetUp中,甚至在捕获预期异常的try-catch中。

@NickMeyer:可以使用带有图像的分步指南。它可以通过按Ctrl-F5自动运行NUnit测试,或在按F5时对其进行调试。与任何其他项目一样,@nickMeyer的上述注释和链接非常有用,因此我们设法让NUnit按照原始问题执行。这在Visual Studio 2012 Express中不起作用,因为调试设置中没有更改启动操作的选项。如果您愿意手动修改.csproj文件,则可以通过这种方式设置StartAction、StartProgram和StartTargetments属性,从而达到预期效果。