是否可以在 Visual Studio 的测试资源管理器中传递 MSBuild 的属性?

Is it possible to pass MSBuild's property in Visual Studio's test explorer?

提问人:Wasenshi 提问时间:5/23/2023 最后编辑:Wasenshi 更新时间:5/25/2023 访问量:55

问:

我知道我可以做这样的事情:

dotnet test myproject.csproj /p:IsTest=true

在 myproject.csproj 中:

  <PropertyGroup>
    ...
    <DefineConstants Condition=" '$(IsTest)' == 'true' ">$(DefineConstants);TEST</DefineConstants>
  </PropertyGroup>

这将允许我有选择地输入或输出某些代码部分,当我只想运行测试/单元测试时,这些代码应该或不应该执行/包含。(通过在后面添加任何代码或#if TEST ... #endif#if !TEST ... #endif)

我想知道,当我通过 Visual Studio 内置测试资源管理器运行测试时,我也可以做这样的事情吗?

visual-studio 预处理器指令 dotnet-cli 测试资源管理器

评论


答:

0赞 Wasenshi 5/25/2023 #1

我通过使用构建配置解决了这个问题。

enter image description here

然后为每个需要它的项目手动添加符号。

enter image description here

因此,创建一个专门用于单元测试的新构建配置文件(配置),并直接在每个项目中自定义所需的内容。如果要通过 Visual Studio 运行测试,请在点击“运行测试”按钮之前更改为此新的生成配置。