在Azure DevOps测试运行任务中打印控制台输出

时间:2019-06-26 03:38:14

标签: azure-devops

我正在使用[BeforeTestRun]挂钩进行一些初始设置,以进行我的Specflow测试。这确实会检查某些用户以确保它们是否存在,如果不存在,则使用特定的角色和权限创建它们,以便自动化测试可以使用它们。该功能可以在Console.Writeline上打印许多有用的信息。 当我在本地运行测试时,可以在主要功能文件上看到此钩子函数的输出,以及每个场景下每个场景的输出。但是,当我通过Azure DevOps pipleine运行测试时,我不确定[BeforeTestRun]的输出在哪里,因为它没有绑定到特定的测试方案。 “运行测试任务”控制台没有有关此的信息。

有人可以帮我在某处显示此输出,以便我采取相应的行动。

我尝试使用System.Diagnostics.Debug.Print,System.Diagnostics.Debug.Print,System.Diagnostics.Debug.WriteLine,System.Diagnostics.Trace.WriteLine,但似乎在管道控制台上没有任何作用

[BeforeTestRun]
        public static void BeforeRun()
        {
            Console.WriteLine(
                "Before Test run analyzing the users and their needed properties for performing automation run");
}

我希望我的输出在某处可见,这样我就可以根据需要采取行动。

1 个答案:

答案 0 :(得分:2)

控制台日志是不可能的。

该产品当前不支持通过打印控制台日志以通过测试,并且我们目前还没有计划在不久的将来对此进行支持。

(来源:https://developercommunity.visualstudio.com/content/problem/631082/printing-the-console-output-in-the-azure-devops-te.html

但是,还有另一种方法:

您的版本将带有文件扩展名.trx的附件。这是一个xml文件,其中包含每个测试的Output元素(另请参见https://stackoverflow.com/a/55452011):

<TestRun id="[omitted]" name="[omitted] 2020-01-10 17:59:35" runUser="[omitted]" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Times creation="2020-01-10T17:59:35.8919298+01:00" queuing="2020-01-10T17:59:35.8919298+01:00" start="2020-01-10T17:59:26.5626373+01:00" finish="2020-01-10T17:59:35.9209479+01:00" />
  <Results>
    <UnitTestResult testName="TestMethod1">
      <Output>
        <StdOut>Test</StdOut>
      </Output>
    </UnitTestResult>
  </Results>
</TestRun>

Build attachment

trx file with output