NUnit无法加载DLL

Kon*_*tin 15 c# nunit visual-studio-2013

尝试在Visual Studio中运行单元测试时收到以下错误消息:

NUnit failed to load w:\Repos\trading.tools\Trading.Tools.Test\bin\x64\Debug\Trading.Tools.Test.dll
Run Code Online (Sandbox Code Playgroud)

我在用

  • Visual Studio社区2013
  • NUnit适配器3.4.0.0
  • NUnit 3.4.1

奇怪的是,我有另一个项目设置方式与此项目相同,并且工作得很好.

我还下载了NUnit 3.4.1并安装了它.我跑的时候

nunit3-console.exe Trading.Tools.Test.dll
Run Code Online (Sandbox Code Playgroud)

一切正常.任何想法我能做什么?

非常感谢康斯坦丁

编辑#1

以下是尝试运行所有测试时Visual Studio的完整控制台输出.

Test run will use DLL(s) built for framework Framework45 and platform X86. Following DLL(s) will not be part of run: 
Trading.Tools.Test.dll, Trading.Tools.dll are built for Framework Framework45 and Platform X64.
 Go to http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409 for more details on managing these settings.
NUnit Adapter 3.4.0.0: Test discovery starting
NUnit failed to load w:\Repos\trading.tools\Trading.Tools.Test\bin\x64\Debug\Trading.Tools.Test.dll
Assembly contains no NUnit 3.0 tests: w:\Repos\trading.tools\Trading.Tools\bin\x64\Debug\Trading.Tools.dll
NUnit Adapter 3.4.0.0: Test discovery complete
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,NUnit非常明显需要x86构建,但我构建的是x64平台.而且,如果我使用它执行它,我的x64构建工作正常nunit3-console.exe.

我在csproj文件中看到的是:

<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\NUnit.3.4.1\lib\net45\nunit.framework.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)

这里奇怪的是它指定使用Version=2.6.4.14350但引用3.4.1 dll.

所以从这一点开始的下一个问题是如何让NUnit执行我的x64构建?有任何想法吗?

小智 53

我有一个类似的问题,关键是它是Visual Studio中的Test Runner,它说明只会测试x86程序集.我假设它然后强制使用x86 NUnit跑步者.要改变这种(在VS2015和VS2017至少),进入Test> Test Settings> Default Processor Architecture> X64.