我想用nunit-console
運行我的解決方案中的所有測試。nunit-console「無法加載文件或程序集」使用MySolution.sln
我這樣做:
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
我做File > Open Project > 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
---------------------------
The exception can be found here
發生了什麼和怎麼做我修復它?(無需保持MySolution.nunit文件)
更多信息
MyNamespace.Administration
甚至不包含測試的DLL文件之一,這意味着NUnit的失敗嘗試加載它來尋找測試運行。知道這個我編輯了由nunit-x86.exe
(MySolution.nunit)創建的文件,並刪除了所有沒有測試的dll。果然,測試工作(在gui和控制檯中)。這對我來說是不可接受的,因爲這意味着我必須保留另一個配置文件。 Nunit支持.sln文件應該避免這種情況。- 我的測試運行正常使用TestDriven.Net(但我真的需要使用NUnit的控制檯來運行它們)
我已經看過this answer但我不能做的融合日誌查看器說什麼意義。發佈該日誌有幫助嗎?集綁定日誌查看器,列出了創建3個文件:- NUnit的代理-x86.exe程序,這一次似乎是試圖找到
MyNamespace.Administration.dll/EXE
inside the nunit directories - Tests_24398275 X2 - 一個在我的項目文件夾尋找nunit.core另一個在我的項目文件夾中查找unit.core.interfaces。我會很少注意這兩個,因爲它們也出現在我手動編輯的.nunit項目中)。
- NUnit的代理-x86.exe程序,這一次似乎是試圖找到
- (perreister comment)該問題似乎與項目/程序集本身,而不是創建方法。如果我創建一個.nunit項目並嘗試向其添加
MyNamespace.Administration
(使用'添加程序集...'或'添加VS項目...'),則失敗。 - 調用
nunit-console-x86 somepath/bin/Debug/MyNamespace.Administration.dll
直接工作。
顯然,'MyNamespace.Administration.dll'包含測試使用的代碼。你確定你沒有忘記,例如,在引用項目時把'CopyLocal = True'放在哪裏? – andreister
它被一個測試項目(dll)引用,但該項目在我使用MySolution.nunit時起作用,這導致我相信它真的無法加載該項目只是爲了查看它是否有測試(我假設它打開項目以查看哪些項目有測試)。 –
如何明確地將該項目添加到'.nunit'中,以查看它是否會失敗?通常對於非測試項目,NUnit只報告它沒有測試。 – andreister