TFS测试与框架设置不匹配

Sam*_*Sam 21 vstest vstest.console.exe .net-4.7.1 tfs2018

我正在尝试将解决方案从TFS 2012迁移到TFS 2018 SP2RC2,但是我无法使单元测试正常运行。所有项目都已重新定位到4.7.1,并已构建为x86平台。我们有一个testsettings文件,除了部署项目外什么都不提供。我正在使用新的VSTest平台安装程序任务(由MS指导)和VS测试任务。在测试运行开始时,我收到以下消息:

Test run will use DLL(s) built for framework .NETFramework,Version=v4.5 and platform X86. Following DLL(s) do not match framework/platform settings.
Run Code Online (Sandbox Code Playgroud)

因此,所有测试均以目标4.7.1为目标而被跳过。该4.5设置来自哪里?我在任何地方都找不到它,也找不到如何更改它。

小智 7

我在 Visual Studio 中找到的解决方案比我想象的要容易得多:

  1. 退出VS的所有实例
  2. 在 Windows 资源管理器中打开项目文件夹,找到 .vs 文件夹,将其删除
  3. 重新启动 VS,文件夹会自行重建,测试再次工作。

显然,NUnit 插件在此文件夹中隐藏了一些设置,并且它们是二进制文件,因此您无法编辑它们。我更新到 NUnit3TestAdapter 版本 3.17 后就发生了这种情况。


Psd*_*ddp 6

/Framework:您可以为VSTest指定一个参数。

在您的情况下,您应指定 /Framework:.NETFramework,Version=v4.7.1

请参阅https://msdn.microsoft.com/zh-cn/library/jj155796.aspx?f=255&mspperror=-2147217396

  • 谢谢!在我的 AZDO 管道中,我收到以下错误。将此命令添加到我的 vstest 任务修复了它 - /Framework:.NETCoreApp,Version=v2.0 测试运行将使用为框架 .NETFramework,Version=v4.0 和平台 X86 构建的 DLL。以下 DLL 与框架/平台设置不匹配。MyProject.UnitTest.dll 是为 Framework 2.0 和 Platform AnyCPU 构建的。 (2认同)
  • @Lara-您能在VS2019中解决此问题吗? (2认同)
  • 看起来他们已经在最新的预览版中对其进行了修复-https://developercommunity.visualstudio.com/content/problem/579073/test-discovery-reporting-dlls-do-not-match.html。我自己尚未确认。 (2认同)
  • 我在 Azure Pipelines (Azure DevOps) 中遇到了这样的问题,并将以下行添加到 VSTest 任务中修复了该问题: otherConsoleOptions: '/Framework:.NETStandard,Version=v2.0' (2认同)