2013-05-29 70 views
8

我正在設置TeamCity來運行一些NUnit測試,TeamCity報告說所有測試都通過了,但它報告構建失敗,並顯示錯誤消息「新建構建狀態爲:: NUnit錯誤,{build.status.text}'。 挖掘到構建日誌我可以看到加載測試程序失敗,這是報告的錯誤;TeamCity NUnit構建步驟失敗,雖然所有測試都通過

 
[Step 2/2] NUnit error running tests in 'C:\TeamCity\buildAgent\work\f73bb9cce36ccd59\ProjectName.Web\ProjectName.BrowserTests\obj\Release\MyProject.BrowserTests.dll' assembly 
Loading assembly is compiled for v4.0.30319, MSIL 
NUnit runner runtime is v4.0.30319, x86 
System.IO.FileNotFoundException: Could not load file or assembly 'MyProject.Browser, Version=0.24.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 
File name: 'MyProject.Browser, Version=0.24.0.0, Culture=neutral, PublicKeyToken=null' 

Server stack trace: 
    at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes) 
    at System.Reflection.RuntimeAssembly.GetExportedTypes() 
    at NUnit.Core.CoreExtensions.InstallAdhocExtensions(Assembly assembly) 
    at NUnit.Core.Builders.TestAssemblyBuilder.Load(String path) 
    at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites) 
    at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites) 
    at NUnit.Core.TestSuiteBuilder.Build(TestPackage package) 
    at NUnit.Core.SimpleTestRunner.Load(TestPackage package) 
    at NUnit.Core.ProxyTestRunner.Load(TestPackage package) 
    at NUnit.Core.ProxyTestRunner.Load(TestPackage package) 
    at NUnit.Core.RemoteTestRunner.Load(TestPackage package) 
    at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) 
    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg) 

那麼,爲什麼不能加載文件我想知道?測試全部通過了,爲什麼這個文件甚至需要現在加載?

我試過在NUnit構建步驟中將.NET運行時設置爲x86,但無濟於事。

環境:Windows 7,VS 2012 Update 2,編譯爲.NET 4.0,NUnit 2.6.2,TeamCity 7.1。

+0

具有相同的問題。令人沮喪。 – autonomatt

回答

6

如果這仍然有效;
這是一個非常明顯的錯誤:

System.IO.FileNotFoundException: Could not load file or assembly 'MyProject.Browser, Version=0.24.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

  1. 你必須創建構建步驟來編譯測試

  2. 創建另一個構建步驟NUnit的,並通過路徑組件文件,你可以使用通配符,更info https://stackoverflow.com/a/16629676/1075077 here。

+1

鏈接的答案是正確的,具體而言,您需要從/ bin文件夾運行dll,而不是/ obj文件夾,如果您不明確指定路徑,teamcity會煩人地執行此操作。謝謝。 –

+0

#2是正確的。我在文檔(https://confluence.jetbrains.com/display/TCD7/NUnit)中注意到它提到你可能想把它放在「忽略」部分。 似乎這個值應該在TeamCity中默認。 –

+0

嗯:)如果你喜歡答案,upvote :) –

相關問題