ReSharper单元测试不在bin目录中运行

Ric*_*o-E 28 c# resharper nunit unit-testing visual-studio-2012

前言

我知道,这个问题似乎在这里有一些问题:

我有几乎相同的问题,如ReSharper 10测试运行器未能找到从外部文件引用的AppSettings.但这些答案表明,问题应该与ReSharper 10.0.2一起消失

我包含了一个custom.xml带有自定义设置的文件,我需要从单元测试中读取它们.但是找不到我的档案.

我查看过程运行的位置,并包含此行

var curdir = Directory.GetCurrentDirectory();
Run Code Online (Sandbox Code Playgroud)

所以我发现了,curdir就是这样C:\\Users\\MYUSER\\AppData\\Local\\JetBrains\\Installations\\ReSharperPlatformVs11_000

现在很明显我的文件找不到了.谷歌搜索后,它找到了上述问题.但这些解决方案都不适合我.

这些是我的设置:

ReSharper设置

Visual Studio配置

Microsoft Visual Studio Ultimate 2012

版本11.0.61219.00更新5

Microsoft .NET Framework

版本4.6.01038

Installierte版本:终极版

  • 架构和建模工具04940-004-0038003-02857
  • TeamExplorerfürVisualStudio 2012 04940-004-0038003-02857
  • Microsoft Team Explorer for Visual Studio 2012
  • Visual Basic 2012 04940-004-0038003-02857
  • Microsoft Visual Basic 2012
  • Visual C#2012 04940-004-0038003-02857
  • Microsoft Visual C#2012
  • Visual C++ 2012 04940-004-0038003-02857
  • Microsoft Visual C++ 2012
  • Visual F#2012 04940-004-0038003-02857
  • Microsoft Visual F#2012
  • Windows Phone SDK 8.0 - DEU 04940-004-0038003-02857
  • Windows Phone SDK 8.0 - DEU
  • ASP.NET和Web工具2012.3.41009
  • GenerateUnitTest 1.0
  • Git源代码控制提供程序1.0.0.0
  • JetBrains ReSharper Ultimate 10.0.2 Build 104.0.20151218.120627
  • 适用于Windows Phone 6.2.923.0的Microsoft Advertising SDK
  • 适用于Windows Phone的Microsoft Advertising SDK Build 6.2.923.0
  • Microsoft XNA Game Studio 4.0
  • Microsoft XNA Game Studio 4.0
  • NuGet-Paket-Manager 2.8.60318.667
  • PreEmptive Analytics Visualizer 1.0
  • SQL Server数据工具11.1.20627.00
  • Microsoft SQL Server数据工具
  • Git扩展

Cha*_*lie 51

你没有列出任何版本的NUnit安装,但你标记了这个'nunit'所以我假设你正在使用它!此外,我假设NUnit> = 3.0 ...否则忽略此项.:-)

NUnit 3.0停止更改当前目录.无论如何我们这样做是个坏主意,当3.0不同目录中的多个程序集可能同时运行时,这是一个非常糟糕的主意.

因此,假设仍然是NUnit问题,而不是使用相对路径,请使用TestContext.CurrentContext.TestDirectory作为文件的位置.

  • 看起来对于NUnit 3.6.1,您可以使用`TestContext.CurrentContext.TestDirectory`来获取运行测试的位置.这对我有用. (4认同)

Ahm*_*avi 8

试试这个:

Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
Run Code Online (Sandbox Code Playgroud)