Visual Studio 在VS 2022企业版中运行实时单元测试时,如何忽略过时的类型错误?

aurhwmvo  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(285)

我有一个包含58个项目的解决方案,其中包括10个测试项目,只有一个我感兴趣的项目与我的团队工作相关。
我可以从测试资源管理器手动运行测试项目,它构建的所有测试都很好地通过。
然而,当我设置实时单元测试时,由于在其他项目中使用了过时的类型,构建失败。我不想替换所有的类型引用,因为该代码由其他团队管理。
这是我的VS2022 LUT settings
我只把我感兴趣的测试项目添加到LUT列表中。我也尝试替换一些过时的类型(我最初只有3个错误),但是编译器后来发现了几十个...
我把LUT的日志级别提高到了详细级别,但是这并没有给予任何有用的东西。我没有看到任何其他设置让LUT忽略某些项目或错误。
我已经查阅了MS文档中关于[obsolete]属性的内容,但我不确定为什么在LUT上会出现错误,而在常规测试或调试构建版本上却没有。
失败项目的.csproj包含以下行:<TreatWarningsAsErrors>True</TreatWarningsAsErrors>并将其设置为False允许LUT构建它。但我不想仅仅为了运行一些测试而更改许多. csproj。
是否有其他方法将错误标记为实时单元测试的警告?

6g8kf2rb

6g8kf2rb1#

除了设置<TreatWarningsAsErrors>false</TreatWarningsAsErrors>之外,你可以将<NoWarn>CS0618</NoWarn>添加到项目文件中,这可能对每个人都有帮助,因为其他人也会遇到同样的问题。
您还可以向Directory.Build.props文件(应位于项目结构的根目录中)添加如下节:

<PropertyGroup Condition="$(MSBuildProjectName.EndsWith('UnitTest')) AND '$(MSBuildProjectExtension)' == '.csproj'">
    <NoWarn>$(NoWarn);CS0618</NoWarn>
  </PropertyGroup>

这将禁用名称以“UnitTest”结尾的所有项目的警告。

相关问题