2013-05-29 68 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 :) –

相关问题