单元测试在构建服务器上失败,无法加载类型“Microsoft.VisualStudio.TestTools.UnitTesting.ClassCleanupBehavior”

kfn*_*kfn 15 unit-testing csproj build-error visual-studio

我得到的程序集可以在我的 PC 上正常构建和进行单元测试,但无法在构建 PC 上进行测试。它已经失败了大约一个月。我很可能做错了什么。这是我从构建服务器得到的响应。

16:29:38     Project "xyz.Utilities.UnitTests.csproj": VSTest
16:29:40     Test run for C:\Bin\Release\net5.0-windows\xyz.Utilities.UnitTests.dll (.NETCoreApp,Version=v5.0)
16:29:40     Microsoft (R) Test Execution Command Line Tool Version 16.11.0
16:29:40     Copyright (c) Microsoft Corporation.  All rights reserved.
16:29:40     
16:29:40     Starting test execution, please wait...
16:29:40     A total of 1 test files matched the specified pattern.
16:29:41     An exception occurred while invoking executor 'executor://mstestadapter/v2': Could not load type 'Microsoft.VisualStudio.TestTools.UnitTesting.ClassCleanupBehavior' from assembly 'Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

16:29:41     Stack trace:
16:29:41        at Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestExecutor.RunTests(IEnumerable`1 sources, IRunContext runContext, IFrameworkHandle frameworkHandle)
16:29:41        at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution.RunTestsWithSources.InvokeExecutor(LazyExtension`2 executor, Tuple`2 executorUriExtensionTuple, RunContext runContext, IFrameworkHandle frameworkHandle)
16:29:41        at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution.BaseRunTests.RunTestInternalWithExecutors(IEnumerable`1 executorUriExtensionMap, Int64 totalTests)
16:29:41     
16:29:41     
16:29:41     Test Run Failed.
16:29:41     
16:29:41     Build FAILED.
16:29:41         0 Warning(s)
16:29:41         0 Error(s)
Run Code Online (Sandbox Code Playgroud)

我的项目文件非常简单:

16:29:38     Project "xyz.Utilities.UnitTests.csproj": VSTest
16:29:40     Test run for C:\Bin\Release\net5.0-windows\xyz.Utilities.UnitTests.dll (.NETCoreApp,Version=v5.0)
16:29:40     Microsoft (R) Test Execution Command Line Tool Version 16.11.0
16:29:40     Copyright (c) Microsoft Corporation.  All rights reserved.
16:29:40     
16:29:40     Starting test execution, please wait...
16:29:40     A total of 1 test files matched the specified pattern.
16:29:41     An exception occurred while invoking executor 'executor://mstestadapter/v2': Could not load type 'Microsoft.VisualStudio.TestTools.UnitTesting.ClassCleanupBehavior' from assembly 'Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

16:29:41     Stack trace:
16:29:41        at Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestExecutor.RunTests(IEnumerable`1 sources, IRunContext runContext, IFrameworkHandle frameworkHandle)
16:29:41        at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution.RunTestsWithSources.InvokeExecutor(LazyExtension`2 executor, Tuple`2 executorUriExtensionTuple, RunContext runContext, IFrameworkHandle frameworkHandle)
16:29:41        at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution.BaseRunTests.RunTestInternalWithExecutors(IEnumerable`1 executorUriExtensionMap, Int64 totalTests)
16:29:41     
16:29:41     
16:29:41     Test Run Failed.
16:29:41     
16:29:41     Build FAILED.
16:29:41         0 Warning(s)
16:29:41         0 Error(s)
Run Code Online (Sandbox Code Playgroud)

我认为这与构建服务器上的 Visual Studio 版本有关。我们正在运行 Teamcity。有人有任何线索吗?

小智 26

将您的 NuGet 包升级到最新版本,它应该可以解决您的问题。我认为你需要 2.2.8MSTest.TestAdapterMSTest.TestFramework

  • 我们发现,对我们来说,csproj 文件中对“Microsoft.VisualStudio.TestPlatform.TestFramework*”的持续引用导致这些 NuGet 包在 VS 2022 中不起作用。 (2认同)

kfn*_*kfn 9

我已经按照建议升级了,现在工作正常。 在此输入图像描述