4

我正在尝试从 Visual Studio 中的单元测试运行中解决此警告:

[6/7/2019 7:16:21 PM 警告] 测试运行将使用为框架 .NETFramework、Version=v4.5 和平台 X64 构建的 DLL。以下 DLL 与框架/平台设置不匹配。MyProject.Tests.dll 是为 Framework 4.6.2 和 Platform AnyCPU 构建的。有关管理这些设置的更多详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409

我知道我需要使用与单元测试项目(4.6.2)的框架匹配的目标框架版本来更新 runsettings 文件。我只是无法弄清楚魔术字符串是什么。

这是起点:

<!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <!-- Path relative to solution directory -->
    <ResultsDirectory>.\TestResults</ResultsDirectory>

    <!-- [x86] | x64  
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->
    <TargetPlatform>x64</TargetPlatform>

    <!-- Framework35 | [Framework40] | Framework45 -->
    <TargetFrameworkVersion>Framework45</TargetFrameworkVersion> 
    <!--
    TargetFrameworkVersion needs to be updated, but documentation is unclear on how
    cf. https://github.com/Microsoft/vstest-docs/issues/163
    <TargetFrameworkVersion>.NETFramework,Version=v4.6.2</TargetFrameworkVersion>
    -->     
  </RunConfiguration>

我可以找到尝试的每个值都会导致以下异常:

[6/7/2019 8:34:20 PM 错误] 无法配置运行设置插件“VSTest 运行配置”的设置,因为它引发了以下异常:“加载设置时发生错误。错误:设置“RunConfiguration”无效。为 'TargetFrameworkVersion' 指定的值 'net462' 无效..' 请联系插件作者。

[6/7/2019 8:34:20 PM 诊断] 生成测试运行设置异常:System.Xml.XmlException:加载设置时出错。错误:设置“RunConfiguration”无效。在 Microsoft.VisualStudio.TestWindow.VSTest.TestRunSettingsService.MergeRunSettingsAndFindCompatibleSources(架构和平台,FrameworkVersion 和框架,字符串结果目录, Microsoft.VisualStudio.TestWindow.VSTest.TestRunSettingsService 上的 String solutionDirectory、IDictionary`2 sourceSettings、IXPathNavigable inputRunSettings、String& incompatibleSourcesWarning。

我尝试过的价值观:

  • .NETFramework,版本=v4.6
  • .NETFramework,版本=v4.6.2
  • v4.6.2
  • 网46
  • 网462
  • 框架46

相似的:

4

2 回答 2

3

与 Framework 4.6.1 测试有同样的问题。自原始帖子以来, https://developercommunity.visualstudio.com/content/problem/579073/test-discovery-reporting-dlls-do-not-match.html链接引用的页面已更新,并附有关于该问题的说明在 7 月 24 日发布的 Visual Studio 16.2 中已修复。我升级,从 .runsettings 文件中删除了整个 RunConfiguration 部分,现在单元测试运行没有错误。

于 2019-07-31T17:43:56.640 回答
1

我只是删除了“TargetFrameworkVersion”,它适用于我的情况。如果未指定此字段,我猜 Visual Studio 会自动选择正确的框架。

<!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <!-- Path relative to solution directory -->
    <ResultsDirectory>.\TestResults</ResultsDirectory>

    <!-- [x86] | x64  
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->
    <TargetPlatform>x64</TargetPlatform>

  </RunConfiguration>
于 2019-06-20T18:23:16.357 回答