【问题标题】:Using Resharper Nunit tests start in a random temporary directory使用 Resharper Nunit 测试从随机临时目录开始
【发布时间】:2016-03-07 20:05:40
【问题描述】:

我正在使用 Visual Studio 2015 Professional NUnit 3.2 resharper Ultimate 10.0

我的目标是读取正确的 app.config。

这是我的代码

 [Test]
        public void MakeEngineLoad()
        {
            Debug.WriteLine(string.Format("Current directory: {0}", Directory.GetCurrentDirectory()));

            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            Debug.WriteLine(config.FilePath);
            var engineConfig = (EngineConfigSection)ConfigurationManager.GetSection("engineConfig");
    }

这是输出

当前目录:C:\Users\u6035303\AppData\Local\JetBrains\Installations\ReSharperPlatformVs14 C:\Users\u6035303\AppData\Local\Temp\h1l4sot5.2xg\da7be2d2-7401-4975-b37c-40fc13a14c8d.config

我希望 resharper 使用 bin\debug 目录中的配置文件。 我什至在 resharper 中设置了从特定目录开始的选项。 这是 resharper 的错误还是我遗漏了什么?

【问题讨论】:

  • 这就是所谓的shadow copy,如果你的项目编译成功,配置应该和你的app.config完全一样。如果您不希望这样,您可以转到 ReSharper 设置以禁用卷影复制。

标签: c# visual-studio nunit resharper


【解决方案1】:

Nunit 3 默认在临时目录中运行测试。

要访问.exe 所在的目录,您需要使用TestContext.TestDirectory。我对ConfigurationManager不熟悉,但看起来你可以通过路径,那么下面的工作吗?

ConfigurationManager.OpenExeConfiguration(TestContext.TestDirectory);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 2016-10-11
    • 2014-01-03
    • 2011-09-16
    • 1970-01-01
    • 2021-07-21
    • 2016-02-29
    • 1970-01-01
    相关资源
    最近更新 更多