c# - Application.ExecutablePath 是否会根据测试运行程序返回不同的值?

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

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

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

最佳答案

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

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

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

关于c# - Application.ExecutablePath 是否会根据测试运行程序返回不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/278064/

相关文章:

c# - C++ 比 C# 快多少?

c# - 在循环中添加一个短暂的延迟可以防止它无限循环。为什么?

c# - 将传递的参数设置为 Moq 中的特定值

c# - 如何模拟DbSet的Include方法?

c# - 替换 NUnit 中的 Console.WriteLine

c# - 使用 HttpClient 发送帖子,服务器看到一个空的 Json 文件

c# - 在 NHibernate 中映射私有(private)字段(使用 Fluent NH)

javascript - Karma 测试错误 "unable to init ocLazyLoad"

c++ - gtest - 使用 EXPECT_EQ 报告循环的索引变量

nunit - 单元测试时模型不会自动验证