【问题标题】:Does Application.ExecutablePath return different values depending on the test runner?Application.ExecutablePath 是否根据测试运行程序返回不同的值?
【发布时间】:2010-09-21 15:22:14
【问题描述】:

我正在尝试查看是否有办法在多个测试运行程序中获得一致的单元测试结果。目前的情况是我们有一个测试程序集,如果您在 NUnit GUI 中运行它们,其中 4 个测试通过,但如果您使用 TestDriven.NET 或 ReSharper 测试运行器运行它们,则失败。在这些测试失败的情况下(抛出 System.NullReferenceException),Application.ExecutablePath 似乎返回的是测试运行程序的可执行文件,而不是测试程序集的 DLL。

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

【问题讨论】:

    标签: c# unit-testing nunit resharper automated-tests


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢格泽尼奥。您的这部分答案 (System.Reflection.Assembly.GetExecutingAssembly().CodeBase) 引导我解决问题。
    猜你喜欢
    • 1970-01-01
    • 2016-08-28
    • 2016-09-15
    • 2014-09-08
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多