30
votes

Preamble

I know, that this question seems to have anwsers here:

I have nearly the same problem like ReSharper 10 test runner failing to find AppSettings referenced from external file. But these answer stated, that the problem should be gone with ReSharper 10.0.2

Question

I included a custom.xml files with custom settings, and I need to read them from my unit test. But my file is not found.

I looked, where the process runs, and included this line

var curdir = Directory.GetCurrentDirectory();

So I found out, that curdir is C:\\Users\\MYUSER\\AppData\\Local\\JetBrains\\Installations\\ReSharperPlatformVs11_000

Now it is obvious that my file cannot be found. After googling it, it found the above mentioned questions. But none of these solutions works for me.

These are my settings:

ReSharper Settings

Visual Studio Configuration

Microsoft Visual Studio Ultimate 2012

Version 11.0.61219.00 Update 5

Microsoft .NET Framework

Version 4.6.01038

Installierte Version: Ultimate

  • Architecture and Modeling Tools 04940-004-0038003-02857
  • Team Explorer für Visual Studio 2012 04940-004-0038003-02857
  • Microsoft Team Explorer für 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 and Web Tools 2012.3.41009
  • GenerateUnitTest 1.0
  • Git Source Control Provider 1.0.0.0
  • JetBrains ReSharper Ultimate 10.0.2 Build 104.0.20151218.120627
  • Microsoft Advertising SDK for Windows Phone 6.2.923.0
  • Microsoft Advertising SDK for Windows Phone 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 Data Tools 11.1.20627.00
  • Microsoft SQL Server Data Tools
  • Git Extensions
6
Is the file set to "copy always"?Joachim Isaksson
Damn it! All other config files are, but not that one!Rico-E

6 Answers

52
votes

You don't list any version of NUnit installed, but you tagged this 'nunit' so I'm going to make an assumption you are using it! Further, I'm assuming NUnit >= 3.0... ignore this if otherwise. :-)

NUnit 3.0 stopped changing current directory. It's a bad idea for us to do that anyway and it's a really bad idea with 3.0, when multiple assemblies in differing directories may be running at the same time.

So, assuming still it's an NUnit problem, instead of using a relative path, use TestContext.CurrentContext.TestDirectory as the location of your file.

8
votes

try this:

Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
2
votes

The thing that helped me with such issue - I just turned off NUnit 2.x support in ReSharper settings (ReSharper -> Options... -> Tools -> Unit Testing -> NUnit).

2
votes

setting

In my case was fixed when I changed to this setting

0
votes

I also turned off NUnit 2.x support and even if it has obviously nothing to do with the problem, it solved it (I have ReSharper 2017.3.20180201.111630)

0
votes

We are using TestCaseSource in our tests. So the fix for me in Rider version 2021.1.3 was to change Build-->Unit Testing-->NUnit to Test Runner enter image description here