8

我正在设置 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。

4

1 回答 1

6

如果这仍然有效;
这是一个非常明显的错误:

System.IO.FileNotFoundException:无法加载文件或程序集“MyProject.Browser,Version=0.24.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。

  1. 您必须创建构建步骤来编译测试

  2. 创建另一个构建步骤 NUnit 并将路径传递给可以使用通配符的程序集文件,更多信息https://stackoverflow.com/a/16629676/1075077在这里。

于 2013-08-01T12:25:08.473 回答