web-dev-qa-db-ja.com

Azure DevOpsテスト実行タスクでのコンソール出力の印刷

Specflowテストに[BeforeTestRun]フックを使用して、最初の1回限りのセットアップを行っています。これにより、一部のユーザーが存在するかどうかを確認し、存在しない場合は特定の役割と権限でユーザーを作成して、自動テストで使用できるようにします。これを行う関数は、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");
}

出力をどこかに表示して、必要に応じてその情報に基づいて行動できるようにしたい。

5
Nitin Verma

コンソールログは使用できません。

この製品は現在、テストに合格するためのコンソールログの印刷をサポートしておらず、近い将来、これをサポートする予定はありません。

(ソース: 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

1
riQQ