2016-03-07 84 views
0

开始我使用的Visual Studio 2015年专业 NUnit的3.2 ReSharper的最终10.0使用ReSharper的NUnit的测试中随机临时目录

我的目标是读取正确的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:\用户\ u6035303 \应用程序数据\本地\ JetBrains公司\安装\ ReSharperPlatformVs14 C:\用户\ u6035303 \ AppData的\ Local \ Temp \ h1l4sot5.2xg \ da7be2d2-7401-4975-b37c-40fc13a14c8d.config

我想resharper使用bin \ debug目录中的confile。 我甚至在resharper中设置了从特定目录开始的选项。 这是一个与resharper错误还是我错过了什么?

+0

这就是所谓的卷影副本,和配置应该是完全一样的你的app.config如果你的项目成功编译。如果你不想这样做,你可以去ReSharper设置来禁用卷影复制。 –

回答

0

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

要到达.exe所在的目录,您需要使用TestContext.TestDirectory。我不熟悉ConfigurationManager,但看起来你可以通过一条路,下面的工作也是如此?

ConfigurationManager.OpenExeConfiguration(TestContext.TestDirectory);