【问题标题】:vstest console output verbosity switch ignore by MSBuildMSBuild 忽略的 vstest 控制台输出详细开关
【发布时间】: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="&quot;C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\..\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe&quot; &quot;ProjectA.SpecflowTest.dll&quot; /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


【解决方案1】:

example from Microsoft's docs/logger: 之后的参数用引号括起来:

vstest.console.exe Tests.dll /logger:"console;verbosity=minimal"

我在没有 trx 记录器的情况下从命令行尝试了这个,与正常相比它确实减少了日志记录。

所以在你的情况下:

/logger:&quot;console;verbosity=quiet&quot; /logger:&quot;trx;LogFileName=TestTrxFile.trx&quot;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2023-04-02
    • 2013-05-29
    • 2011-12-03
    • 1970-01-01
    • 2015-09-20
    • 2011-07-01
    相关资源
    最近更新 更多