如何使用xUnit进行调试?

chr*_*kar 32 .net c# debugging unit-testing xunit

我正在学习xUnit,到目前为止,已经发现它是一个非常有用的工具.这让我重新考虑我的一些编码策略而不是TDD.

但是,我遇到了一个有趣的问题.我的测试用例失败了.没有真正的担忧,但我该如何调试呢?

特别是我的测试用例由于"索引缺失"错误或其他类似错误而失败.它在断言声明中没有失败.我现在需要的是运行Visual Studio调试器的测试用例的一些方法,以便我可以看到不同变量的状态.

我不会发布代码,因为这种情况必然会再次出现.有谁知道如何调试测试用例本身?

差点忘了!我正在使用,

  • Visual Studio 2010 Ultimate(Dreamspark许可证)
  • xUnit 1.9

我的工作流程涉及使用xUnit GUI运行程序来运行测试.

如果我问的是不可能的,有人可以建议我可以使用的替代测试套件有我想要的吗?

bbs*_*nbb 52

在VS2015及更高版本中,安装xunit.runner.visualstudio NuGet包.然后调试就像在测试资源管理器窗口中右键单击测试一样简单.(测试 - > Windows - > TestExplorer,如果你看不到它).

在此输入图像描述

  • 我试过这个,但我一直找不到 TestClass.cs。 (2认同)

Dav*_*ave 10

我没有对此进行测试,但您应该能够将visual studio连接到xUnit GUI并从那里进行调试.

从Debug菜单中选择'attach to process',在列表中找到可执行文件的名称,然后单击attach.根据需要在单元测试中设置断点,并从GUI运行测试.应该按预期命中断点.


小智 9

我在实现上述所有方面都失败了,但以下方法对我有用:在要调试的行之前添加以下行(然后运行测试):

        System.Diagnostics.Debugger.Launch();
Run Code Online (Sandbox Code Playgroud)

缺点是它将启动另一个VS :)的实例.

干杯!


Bog*_*gin 6

以下内容适用于VS.NET和SharpDevelop.

打开测试项目的属性并转到Debug选项卡:

  • 在"开始操作"下,将"启动外部程序"设置为所选的xUnit runner可执行文件.

  • 在"开始选项"下,将"命令行参数"设置为项目调试DLL的名称.

  • 同时将"工作目录"设置为项目的"bin\Debug \"目录.

然后选择Debug> Run或按F5以在调试模式下运行测试.断点将被击中.

以这种方式进行调试的优点是,您不必每次都连接到xUnit GUI,只需运行测试项目即可.


Meg*_*gha 5

在Visual Studio 2017中,确保解决方案配置处于``调试''模式下。在“发布”模式下,它不是调试。


Zee*_*ek2 5

请参阅此问题的答案:在单元测试中单步调试和调试代码

本质上:

...转到VS主菜单中的“测试”...,单击子菜单“调试”。. .'。

它也适用于我使用 VS2017 ;)