【发布时间】:2017-11-24 00:05:43
【问题描述】:
我们已将 Service Fabric SDK 和工具从 2.5.216 升级到 2.6.210。
现在,当我们在 VSTS 托管代理上运行构建时,构建在验收测试阶段失败,该阶段通过 vstest.exe 运行规范流验收测试。
错误是:
无法从程序集“Microsoft.ServiceFabric.Data.Interfaces,版本=5.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”中加载类型“Microsoft.ServiceFabric.Data.Collections.IReliableConcurrentQueue`1”。","exceptionType ":"System.TypeLoadException"
使用相同的 vstest.exe 命令在本地进行测试(安装了 Microsoft Azure Service Fabric SDK 和 Tools 2.6.210 (VS2015))。
查看了托管代理的规范 (https://www.visualstudio.com/en-us/docs/build/concepts/agents/hosted) 我们注意到代理上安装的版本是 Service Fabric 5.4.164.9494 / Service Fabric SDK 2.4.164,并且怀疑这些 需要更新。
较长版本的错误
2017-06-20T15:11:00.0331094Z 失败 我可以请求更改 游戏类型2017-06-20T15:11:00.0331094Z的分配
[error]错误消息:2017-06-20T15:11:00.0341044Z ##[error] System.Exception:不匹配的响应代码:InternalServerError -
{"message":"发生错误。","exceptionMessage":"无法加载 类型 'Microsoft.ServiceFabric.Data.Collections.IReliableConcurrentQueue
1' from assembly 'Microsoft.ServiceFabric.Data.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.","exceptionType":"System.TypeLoadException","stackTrace":" at Infrastructure.ExceptionHandling.ExceptionHelper.ThrowIfUnhandled() in d:\\a\\1\\s\\Infrastructure\\Infrastructure.ExceptionHandling\\ExceptionHelper.cs:line 45\r\n at xwx.WebApi.Controllers.gameTypesController.<UpdategameType>d__8.MoveNext() in d:\\a\\1\\s\\Orchestration\\xwx\\xwx.WebApi\\Controllers\\gameTypesController.cs:line 142\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Threading.Tasks.TaskHelpersExtensions.<CastToObject>d__31.MoveNext()\r\n--- 从先前抛出异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n 在 System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()\r\n--- 从先前抛出异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()\r\n--- 从先前抛出异常的位置结束堆栈跟踪 ---\r\n 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()\r\n--- 从先前抛出异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n 在 System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()\r\n--- 从先前抛出异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n 在 System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()\r\n--- 从先前抛出异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n 在 System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext()\r\n--- 从先前抛出异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n 在 System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()"} 2017-06-20T15:11:00.0341044Z ##[错误]堆栈跟踪: 2017-06-20T15:11:00.0341044Z ##[错误] 在 Infrastructure.TestHelpers.AcceptanceTests.ResponseHelper.AssertResponseHadExpectedStatusCode(Int32 预期状态代码)在 d:\a\1\s\Infrastructure\Infrastructure.TestHelpers\AcceptanceTests\ResponseHelper.cs:line 25 2017-06-20T15:11:00.0341044Z ##[错误] 在 xwx.AcceptanceTests.ResponseSteps.ThenIShouldReceiveAHttpStatusCode(Int32 预期状态代码)在 d:\a\1\s\Tests\Orchestration\xwx\xwx.AcceptanceTests\ResponseSteps.cs:line 12 2017-06-20T15:11:00.0341044Z ##[错误] 在 TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding 绑定,IContextManager contextManager,Object[] 参数, ITestTracer testTracer,时间跨度和持续时间) 2017-06-20T15:11:00.0351049Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch 匹配,对象 [] 参数)2017-06-20T15:11:00.0351049Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) 2017-06-20T15:11:00.0351049Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() 2017-06-20T15:11:00.0351049Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.ChangeAllocation3532Feature.ScenarioCleanup() 2017-06-20T15:11:00.0351049Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.ChangeAllocation3532Feature.ICanMakeARequestToChangeTheAllocationOfAgameType() 在 d:\a\1\s\Tests\Orchestration\xwx\xwx.AcceptanceTests\gameTypes\ChangeAllocation.feature:line 43错误消息:2017-06-20T15:11:00.0351049Z ##[错误]
System.Exception:不匹配的响应代码:NoContent - 2017-06-20T15:11:00.0351049Z ##[错误]堆栈跟踪: 2017-06-20T15:11:00.0351049Z ##[错误] 在 Infrastructure.TestHelpers.AcceptanceTests.ResponseHelper.AssertResponseHadExpectedStatusCode(Int32 预期状态代码)在 d:\a\1\s\Infrastructure\Infrastructure.TestHelpers\AcceptanceTests\ResponseHelper.cs:line 25 2017-06-20T15:11:00.0351049Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.gameTypesSteps.WhenTheChangeHasCompleted() 在 d:\a\1\s\Tests\Orchestration\xwx\xwx.AcceptanceTests\gameTypes\gameTypesSteps.cs:line 167 2017-06-20T15:11:00.0351049Z ##[错误] 在 TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding 绑定,IContextManager contextManager,Object[] 参数, ITestTracer testTracer,时间跨度和持续时间) 2017-06-20T15:11:00.0351049Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch 匹配,对象 [] 参数)2017-06-20T15:11:00.0351049Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) 2017-06-20T15:11:00.0351049Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() 2017-06-20T15:11:00.0351049Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.ChangeAllocation3532Feature.ScenarioCleanup() 2017-06-20T15:11:00.0361050Z 2017-06-20T15:11:00.0361050Z 失败我 可以增加分配 2017-06-20T15:11:00.0361050Z 2017-06-20T15:11:01.5390956Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.ChangeAllocation3532Feature.ICanIncreaseTheAllocation() 在 d:\a\1\s\Tests\Orchestration\xwx\xwx.AcceptanceTests\gameTypes\ChangeAllocation.feature:line 52错误消息:2017-06-20T15:11:01.5400956Z ##[错误]
System.Exception:不匹配的响应代码:NoContent - 2017-06-20T15:11:01.5400956Z ##[错误]堆栈跟踪: 2017-06-20T15:11:01.5400956Z ##[错误] 在 Infrastructure.TestHelpers.AcceptanceTests.ResponseHelper.AssertResponseHadExpectedStatusCode(Int32 预期状态代码)在 d:\a\1\s\Infrastructure\Infrastructure.TestHelpers\AcceptanceTests\ResponseHelper.cs:line 25 2017-06-20T15:11:01.5400956Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.gameTypesSteps.WhenTheChangeHasCompleted() 在 d:\a\1\s\Tests\Orchestration\xwx\xwx.AcceptanceTests\gameTypes\gameTypesSteps.cs:line 167 2017-06-20T15:11:01.5400956Z ##[错误] 在 TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding 绑定,IContextManager contextManager,Object[] 参数, ITestTracer testTracer,时间跨度和持续时间) 2017-06-20T15:11:01.5400956Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch 匹配,对象 [] 参数)2017-06-20T15:11:01.5400956Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) 2017-06-20T15:11:01.5400956Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() 2017-06-20T15:11:01.5400956Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.ChangeAllocation3532Feature.ScenarioCleanup() 2017-06-20T15:11:01.5400956Z 如果我尝试减少 分配低于可用的游戏数量我只能减少 分配到总可用 2017-06-20T15:11:01.5400956Z 2017-06-20T15:11:03.0426998Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.ChangeAllocation3532Feature.IfITryToReduceTheAllocationBelowTheNumberOfgamesAvailableICanOnlyReduceTheAllocationToTheTotalAvailable() 在 d:\a\1\s\Tests\Orchestration\xwx\xwx.AcceptanceTests\gameTypes\ChangeAllocation.feature:line 70 错误消息:2017-06-20T15:11:03.0426998Z ##[错误]
System.Exception:不匹配的响应代码:NoContent - 2017-06-20T15:11:03.0426998Z ##[错误]堆栈跟踪: 2017-06-20T15:11:03.0426998Z ##[错误] 在 Infrastructure.TestHelpers.AcceptanceTests.ResponseHelper.AssertResponseHadExpectedStatusCode(Int32 预期状态代码)在 d:\a\1\s\Infrastructure\Infrastructure.TestHelpers\AcceptanceTests\ResponseHelper.cs:line 25 2017-06-20T15:11:03.0437002Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.gameTypesSteps.WhenTheChangeHasCompleted() 在 d:\a\1\s\Tests\Orchestration\xwx\xwx.AcceptanceTests\gameTypes\gameTypesSteps.cs:line 167 2017-06-20T15:11:03.0437002Z ##[错误] 在 TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding 绑定,IContextManager contextManager,Object[] 参数, ITestTracer testTracer,时间跨度和持续时间) 2017-06-20T15:11:03.0437002Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch 匹配,对象 [] 参数)2017-06-20T15:11:03.0437002Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) 2017-06-20T15:11:03.0437002Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() 2017-06-20T15:11:03.0437002Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.ChangeAllocation3532Feature.ScenarioCleanup() 2017-06-20T15:11:03.0437002Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.ChangeAllocation3532Feature.ICanReduceTheAllocationByTheNumberOfgamesStillAvailable() 在 d:\a\1\s\Tests\Orchestration\xwx\xwx.AcceptanceTests\gameTypes\ChangeAllocation.feature:line 61错误消息:2017-06-20T15:11:03.0437002Z ##[错误]
System.Exception:不匹配的响应代码:NoContent - 2017-06-20T15:11:03.0437002Z ##[错误]堆栈跟踪: 2017-06-20T15:11:03.0437002Z ##[错误] 在 Infrastructure.TestHelpers.AcceptanceTests.ResponseHelper.AssertResponseHadExpectedStatusCode(Int32 预期状态代码)在 d:\a\1\s\Infrastructure\Infrastructure.TestHelpers\AcceptanceTests\ResponseHelper.cs:line 25 2017-06-20T15:11:03.0437002Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.gameTypesSteps.WhenTheChangeHasCompleted() 在 d:\a\1\s\Tests\Orchestration\xwx\xwx.AcceptanceTests\gameTypes\gameTypesSteps.cs:line 167 2017-06-20T15:11:03.0437002Z ##[错误] 在 TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding 绑定,IContextManager contextManager,Object[] 参数, ITestTracer testTracer,时间跨度和持续时间) 2017-06-20T15:11:03.0437002Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch 匹配,对象 [] 参数)2017-06-20T15:11:03.0437002Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) 2017-06-20T15:11:03.0437002Z ##[错误] 在 TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() 2017-06-20T15:11:03.0437002Z ##[错误] 在 xwx.AcceptanceTests.gameTypes.ChangeAllocation3532Feature.ScenarioCleanup() 2017-06-20T15:11:03.0437002Z 失败我可以减少分配 仍然可用的游戏数量 2017-06-20T15:11:03.0437002Z
【问题讨论】:
-
Andreas 我们很乐意收到您对此问题的反馈。
-
VS2017 托管代理安装了兼容的 SDK/运行时。另一种选择是带上你自己的代理。
-
详细的构建日志是什么?您能否分享一个可以在 OneDrive 上重现此问题的简单示例?
-
ok 更新了帖子。添加了详细的日志。
标签: continuous-integration tdd azure-service-fabric azure-pipelines