我的平台:Visual C# 2008 Express Edition with NUnit 2.2.7
我有一个解决方案,我的代码在一个项目中,我的 NUnit 单元测试在同一个解决方案的不同项目中。
我一直在努力调试和单步执行 NUnit 测试。我在网上找到了一些参考资料,建议调用以下内容:
NUnit.ConsoleRunner.Runner.Main(args);
但这甚至没有编译 - 它有编译器错误:
错误 1 命名空间“NUnit.ConsoleRunner”中不存在类型或命名空间名称“Runner”(您是否缺少程序集引用?)
我已经添加了我能找到的所有程序集引用,但没有任何效果。
最后,这是我一起破解的,它有效,但也许你的好读者可以提出更好的解决方案:
1)在我的测试项目中,我要调试的一个测试用例的类名是MyTestClass。它有一个名为 Init() 的 [TestFixtureSetUp] 方法,实际的测试用例在 [Test] 函数 MyTest()
2) 在我的代码项目中,我有一个控制台程序 TestProgram.cs,它可以编译为 EXE。
在 TestProgram.cs 中,我通过以下方式调用测试用例
// First instantiate the test class
MyTestClass tc = new MyTestClass();
// Call the TestFixtureSetup method
tc.Init();
// Now call the actual test
tc.MyTest();
这可行,我可以调试并单步执行测试用例。
如果有人对使用 Visual Studio 2008 Express 有任何更好的建议而无需支付额外的插件,我很感激您的建议。