2017-09-25 83 views
0

私は、MSVS2013内で、nunit GUIとnunitコンソールを使用して、C#ユニットテストを正常に実行するためにnunitを使用しました。nunit3-consoleでデバッグを画面に出力するにはどうしたらいいですか?

最初の2つは、デバッグ出力(Console.Write(...))を取得できます。 MSVS2013では、テスト後に「出力」リンクをクリックすると表示され、GUIではデバッグが「出力」ウィンドウに表示されます。

これをnunit3-console.exeで実行すると、要約レポートが表示されます。私はXML出力(TestResults.xml内)に何があるのか​​を調べようとしましたが、それには同じサマリーレポートが含まれているだけです。

私のデバッグをスクリーンにも出すにはどうすればいいですか?

私のコマンドラインは次のようになります。

nunit3-console.exe "c:\path\to\my\assebly.dll" --trace=Verbose --test=Regression.Tests.HelloWorld 

テストHelloWorldのは、その中にラインConsole.Write("Hello World\r\n");を持って、私はこれは画面(標準出力)に表示されたいです。

答えて

0

Console.WriteLine(...)が出力に表示されますが、NUnit 3では、テストでTestContext.WriteLine(...)を使用する必要があります。 NUnit 3はテストを並行して実行することができるので、テストの実行が終了したらその出力をキャプチャしてコンソールに出力します。このようにして、出力はテストと一致し、他のテストとインターリーブされません。

出力が書き込まれると直ちに出力したい場合は、TestContext.Progress.WriteLine(...)を使用してください。例えば、以下の試験、

[Test] 
    public void ExampleOfConsoleOutput() 
    { 
     Console.WriteLine("Console.WriteLine In ExampleOfConsoleOutput"); 
     TestContext.WriteLine("TestContext.WriteLine In ExampleOfConsoleOutput"); 
     TestContext.Progress.WriteLine("TestContext.Progress.WriteLine In ExampleOfConsoleOutput"); 
    } 

出力Progressメッセージは、それが試験の最後であっても、他の出力前に出力されたことを以下、

=> nunit.v3.TestNameInSetup.ExampleOfConsoleOutput 
TestContext.Progress.WriteLine In ExampleOfConsoleOutput 
Console.WriteLine In ExampleOfConsoleOutput 
TestContext.WriteLine In ExampleOfConsoleOutput 

注意。

--traceコマンドラインオプションも必要ありません。これは、NUnit内部トレース用です。出力を制御するコマンドラインオプションは--labelsですが、デフォルト(コマンドラインオプションなし)は上記の出力を示します。

+0

Re:Console.Write(...); ...あなたは正しいです、テストの終わりにデバッグが出ていました。私は何とかそれを逃しました(私はそれがリアルタイムで出てくることを期待していました)...私は盲目です!しかし、私が本当に望んでいたのは "リアルタイム"デバッグでした。TestContect.Progress.Write(...)はうまくいきます! - どうもありがとう。 –

関連する問題