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");
}
出力をどこかに表示して、必要に応じてその情報に基づいて行動できるようにしたい。
コンソールログは使用できません。
この製品は現在、テストに合格するためのコンソールログの印刷をサポートしておらず、近い将来、これをサポートする予定はありません。
ただし、別の方法があります。
ビルドには、ファイル拡張子.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>