我正在设置 TeamCity 以运行一些 NUnit 测试,TeamCity 报告所有测试都通过了,但它报告构建失败,并显示错误消息“新构建状态为::NUnit 错误,{build.status.text}”。深入构建日志,我可以看到加载被测程序失败,这是报告的错误;
[步骤 2/2] 在“C:\TeamCity\buildAgent\work\f73bb9cce36ccd59\ProjectName.Web\ProjectName.BrowserTests\obj\Release\MyProject.BrowserTests.dll”程序集中运行测试时出现 NUnit 错误 加载程序集编译为 v4.0.30319,MSIL NUnit runner 运行时是 v4.0.30319, x86 System.IO.FileNotFoundException:无法加载文件或程序集“MyProject.Browser,Version=0.24.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。 文件名:'MyProject.Browser,版本=0.24.0.0,文化=中性,PublicKeyToken=null' 服务器堆栈跟踪: 在 System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly 程序集,ObjectHandleOnStack retTypes) 在 System.Reflection.RuntimeAssembly.GetExportedTypes() 在 NUnit.Core.CoreExtensions.InstallAdhocExtensions(组装程序集) 在 NUnit.Core.Builders.TestAssemblyBuilder.Load(字符串路径) 在 NUnit.Core.Builders.TestAssemblyBuilder.Build(字符串 assemblyName,布尔 autoSuites) 在 NUnit.Core.Builders.TestAssemblyBuilder.Build(字符串 assemblyName,字符串 testName,布尔 autoSuites) 在 NUnit.Core.TestSuiteBuilder.Build(TestPackage 包) 在 NUnit.Core.SimpleTestRunner.Load(TestPackage 包) 在 NUnit.Core.ProxyTestRunner.Load(TestPackage 包) 在 NUnit.Core.ProxyTestRunner.Load(TestPackage 包) 在 NUnit.Core.RemoteTestRunner.Load(TestPackage 包) 在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) 在 System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage 消息)
那么,我想知道为什么无法加载文件?测试都通过了,为什么现在还需要加载这个文件?
我已经尝试在 NUnit 构建步骤中将 .NET 运行时设置为 x86,但无济于事。
环境:Windows 7,VS 2012 Update 2,编译为 .NET 4.0,NUnit 2.6.2,TeamCity 7.1。