【发布时间】:2022-12-08 08:12:39
【问题描述】:
我们正在尝试减少 Azure DevOps 管道中测试运行的控制台冗长程度。 由于测试的数量和复杂性,我们将 VSTest.Console.exe 运行包装在 MSBuild 目标中。
我们使用 /logger:console;verbosity=minimal 配置我们的 vstest.console.exe 运行。当通过命令提示符手动运行 vstest 命令时,这工作正常,它只按预期输出跳过的测试和最终结果摘要。
当通过 MSBuild 目标执行时,即使是我们确认的最简单的目标,控制台的输出也是完整的 VSTest 控制台输出,就好像它在正常的冗长状态下一样。 我们还将 MSBuild 的详细程度设置为最小,但这对 VSTest 输出没有影响。
这是我们可以重现它的目标
<Target Name="RunTestWorker" Outputs="$(VSTestConsoleExitCode)">
<Exec Command=""C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\..\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "ProjectA.SpecflowTest.dll" /Platform:x64 /logger:console;verbosity=q /logger:trx;LogFileName=TestTrxFile.trx"
ContinueOnError="True"
WorkingDirectory="$(TestResultsDirectory)..">
</Exec>
</Target>
使用此 MSBuild 调用执行:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe" "TestBuild.targets" /verbosity:m /t:RunTestWorker
我们尝试了其他 MSBuild Exec 选项,例如 ConsoleToMSBuild 和 EchoOff,但这并没有太大改变。
这是一个已知的问题?
【问题讨论】:
-
你试过
/logger:console;verbosity=quiet了吗?我不认为q被认为是verbosity的有效值。 -
我们尝试使用 /logger:console;verbosity=minimal 这应该是一个公认的价值
标签: azure-devops msbuild msbuild-task