Tom*_*han 6 teamcity nunit assembly-loading
我有一堆项目的解决方案,其中一些也有测试项目.这些都是为Any CPU平台编译的.
在TeamCity中,我有一个NUnit 2.6.4的构建配置,我在其上指定Platform: auto (MSIL)和Version: 4.0.
当我运行构建时,测试失败并显示以下消息:
NUnit error running tests in 'C:\BuildAgent\work\a58fc6cd9bf63032\JsonApi.Tests\obj\Release\JsonApi.Tests.dll' assembly
Loading assembly is compiled for v4.0.30319, MSIL
NUnit runner runtime is v4.0.30319, x64
Run Code Online (Sandbox Code Playgroud)
更奇怪的是,当我刚刚关闭"最近运行最近失败的测试"(并且没有改变其他任何东西)时,我反而得到了以下内容:
NUnit error running tests in 'C:\BuildAgent\work\a58fc6cd9bf63032\JsonApi.Owin.Tests\obj\Release\JsonApi.Owin.Tests.dll' assembly
Loading assembly is compiled for v4.0.30319, MSIL
NUnit runner runtime is v4.0.30319, x86
Run Code Online (Sandbox Code Playgroud)
请注意,在一种情况下,跑步者是x86,而在另一种情况下,跑步者是x64.在这两种情况下,它们都是否成功加载为MSIL编译的程序集.
我假设我的构建设置已经关闭,但是什么?
根据您提供的更详细的日志,构建失败的真正原因似乎是:
...
System.IO.FileNotFoundException: Could not load file or assembly 'System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 or one of its dependencies.
The system cannot find the file specified.
File name: 'System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35|'
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)
...
Run Code Online (Sandbox Code Playgroud)
而且我相信它正在发生,正是因为我在评论中链接的SO线程中提到的原因,即你正在运行来自obj文件夹的测试,而它应该是bin.但这仍然只是猜测,因为您没有提供NUnit步骤配置.
要解决此问题,您应该明确说明具有单元测试的程序集所在的路径.像这样的东西:
**\bin\**\*.Tests.dll
Run Code Online (Sandbox Code Playgroud)
在"列出汇编文件:"下.这样来自obj文件夹的程序集将不会被测试,请参阅此SO线程.
| 归档时间: |
|
| 查看次数: |
1852 次 |
| 最近记录: |