com*_*ndo 20 c# testing nunit unit-testing
我在调试VisualStudio的NUnit测试时遇到问题.我创建了一个空项目(控制台应用程序),然后我添加了对NUnit库的引用并编写了一个简单的测试.
namespace ReimplementingLinq.Tests
{
[TestFixture]
public class WhereTest
{
[Test]
public void SimpleFiltering()
{
int[] source = { 1, 2, 3, 4, 2, 8, 1 };
var result = source.Where(val => val < 4);
int[] expected = {1,2,3,4};
CollectionAssert.AreEqual(expected, result);
}
}
}
Run Code Online (Sandbox Code Playgroud)
接下来我遵循此链接中给出的建议 如何从Visual Studio以调试模式运行NUnit?但是那个主题的解决方案都不适合我.执行测试时没有遇到任何断点.我尝试通过附加到流程以及使用带参数的外部程序运行项目来测试解决方案.
我该怎么做才能调试我的单元测试?
Rob*_*nik 41
只需配置您的测试项目,以便在按F5(开始调试)或Ctrl-F5(无需调试时启动)时,它将自动启动NUnit GUI并执行其中的所有测试.如果遇到任何断点,您也可以简单地调试测试代码.
一个一步一步的指导与图像显示你到底如何做到这一点.
懒惰是所有发明的母亲 :-)
Cri*_*urf 13
假设您使用的是Visual Studio以外的Visual Studio版本,则可能会使用TestDriven.NET.
安装后
遗憾的是,您不能将此方法用于Visual Studio的Express版本,因为TestDriven.NET是Visual Studio的插件,而Express版本不支持使用插件
您还可以通过控制台应用程序在调试器中运行测试:
在控制台应用程序的Main方法内部,创建测试fixuture的新实例,然后调用其中一个测试方法.例如,如果我有一个名为MyTests的夹具和一个名为Test1的测试,我会写:
var myTests = new MyTests();
myTests.Test1();
Run Code Online (Sandbox Code Playgroud)在创建MyTests类实例的行上设置断点,然后按F5
如果您使用的是NUnit 2.4,则可以在您的SetUpFixture课程中输入以下代码.(您可以使用旧版本执行此操作,但您需要执行与之相关的任何等效操作SetUpFixture,或将其复制到测试本身.)
[SetUpFixture]
public class SetupFixtureClass
{
[SetUp]
public void StartTesting()
{
System.Diagnostics.Debugger.Launch();
}
}
Run Code Online (Sandbox Code Playgroud)
Debugger.Launch()当您单击NUnit中的"运行"时,导致以下对话框显示的原因是什么.

然后,在项目打开的情况下选择正在运行的visual studio实例(我的屏幕截图中的第二个),然后将附加调试器,并且任何断点或异常都将显示在Visual Studio中.
| 归档时间: |
|
| 查看次数: |
28646 次 |
| 最近记录: |