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

时间:2016-03-25 15:08:06

标签: c# unit-testing visual-studio-2012 nunit resharper

序言

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

我遇到了与ReSharper 10 test runner failing to find AppSettings referenced from external file几乎相同的问题。 但是这些答案表明,问题应该与ReSharper 10.0.2一起消失。

问题

我在自定义设置中添加了custom.xml个文件,我需要从单元测试中读取它们。但是找不到我的档案。

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

var curdir = Directory.GetCurrentDirectory();

所以我发现,curdirC:\\Users\\MYUSER\\AppData\\Local\\JetBrains\\Installations\\ReSharperPlatformVs11_000

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

这些是我的设置:

ReSharper Settings

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 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
  • 适用于Windows Phone 6.2.923.0的Microsoft Advertising SDK
  • 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数据工具11.1.20627.00
  • Microsoft SQL Server数据工具
  • Git Extensions

6 个答案:

答案 0 :(得分:49)

您没有列出任何已安装的NUnit版本,但您已将此标记为“nunit”标记。所以我要假设你正在使用它!此外,我假设NUnit> = 3.0 ...否则忽略此项。 : - )

NUnit 3.0停止更改当前目录。无论如何,这对我们来说是一个坏主意,而且当不同目录中的多个程序集可能同时运行时,它是3.0的真正坏主意。

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

答案 1 :(得分:7)

试试这个:

Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);

答案 2 :(得分:1)

帮助我解决这个问题的事情 - 我刚刚在ReSharper设置中关闭了NUnit 2.x支持(ReSharper - >选项...... - >工具 - >单元测试 - > NUnit)。

答案 3 :(得分:1)

setting

在我的情况下,当我更改为该设置时是固定的

答案 4 :(得分:0)

我也关闭了NUnit 2.x支持,即使它显然与问题无关,它也解决了它(我有ReSharper 2017.3.20180201.111630)

答案 5 :(得分:0)

我们在测试中使用 TestCaseSource。 因此,在 Rider 版本 2021.1.3 中对我的修复是将 Build-->Unit Testing-->NUnit 更改为 Test Runner enter image description here