2008-11-10 88 views
3

我试图看看是否有一种方法可以跨多个测试跑步者获得一致的单元测试结果。目前的情况是,我们有一个测试程序集,其中4个测试通过,如果您在NUnit GUI中运行它们,但是如果使用TestDriven.NET或ReSharper测试运行程序运行它们,则会失败。在这些测试失败的情况下(引发System.NullReferenceException),Application.ExecutablePath似乎返回测试运行器的可执行文件而不是测试程序集的DLL。Application.ExecutablePath根据测试运行器返回不同的值吗?

是否存在Application.ExecutablePath以外的值我应该使用(我们当前正在使用它来访问DLL的.config文件中的值)?什么是NUnit GUI做(或不做),导致它在其他测试运行器失败时正常运行?

回答

4

您可以尝试使用System.Reflection.Assembly类,例如,

String strPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase); 

这个类还有其他一些方法和属性,所以我相信你会找到你需要的。

+0

谢谢Grzenio。这部分答案(System.Reflection.Assembly.GetExecutingAssembly()。CodeBase)引导我进入修复程序。 – 2008-11-17 14:16:56

相关问题