我要使用nunit-console
来运行解决方案中的所有测试。
我这样做:
c:\some\path>nunit-console-x86.exe MySolution.sln
NUnit-Console version 2.6.2.12296
Copyright (C) 2002-2012 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.
Runtime Environment -
OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1
CLR Version: 2.0.50727.5466 ( Net 3.5 )
ProcessModel: Default DomainUsage: Default
Execution Runtime: net-3.5
Could not load file or assembly 'MyNamespace.Administration, Version=0.0.0.1, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
因此,我决定尝试nunit-x86.exe
。我执行了文件 > 打开项目 > MySolution.sln
,结果出现了以下内容:
---------------------------
NUnit
---------------------------
Test load failed!
System.IO.FileNotFoundException : Could not load file or assembly
'MyNamespace.Administration, Version=0.0.0.1, Culture=neutral,
PublicKeyToken=null' or one of its dependencies. The system cannot
find the file specified.
For further information, use the Exception Details menu item.
---------------------------
OK
---------------------------
发生了什么,如何修复?(而不必维护一个 MySolution.nunit 文件)
更多信息
MyNamespace.Administration
甚至不是包含测试的 dll 之一,这意味着 nunit 失败并试图加载它以查找要运行的测试。因此,我编辑了nunit-x86.exe
创建的文件(MySolution.nunit),删除了所有没有测试的 dll。果然,测试正常工作(在 gui 和 console 中)。但这对我来说是不可接受的,因为这意味着我必须保持另一个配置文件。Nunit 支持 .sln 文件本来应该避免这种情况。- 我的测试使用 TestDriven.Net 运行良好(但我真的需要使用 nunit-console 运行它们)
我看过这个答案,但我无法看出融合日志查看器所说的内容。发布此日志是否有帮助?程序集绑定日志查看器列表中创建了 3 个文件:- nunit-agent-x86.exe,这似乎正在尝试在 nunit 目录中查找
MyNamespace.Administration.dll/EXE
- Tests_24398275 x2 - 其中一个在我的项目文件夹中寻找 nunit.core,另一个在我的项目文件夹中寻找 unit.core.interfaces。我对这两个的重视比较少,因为它们也出现在我手动编辑的 .nunit 项目中。
- nunit-agent-x86.exe,这似乎正在尝试在 nunit 目录中查找
- (由 andreister 评论)问题似乎与项目/程序集本身有关,而不是创建方法。如果我创建一个 .nunit 项目,并尝试将
MyNamespace.Administration
添加到其中(使用“添加程序集...”或“添加 VS 项目...”),则失败。 - 直接调用
nunit-console-x86 somepath/bin/Debug/MyNamespace.Administration.dll
可以正常工作。
.nunit
中,看看是否会失败,这个怎么样?通常对于非测试项目,NUnit只会报告它没有测试。 - andreisterAdministration.dll
的依赖项,再逐个添加并查看是否有所不同。 - andreister/framework=4.5
和/framework=net-4.5
,但没有成功。还有 'NUnit-Console 版本 2.6.2.12296'。 - João Portela