2013-05-29 13 views
23

VS 2012でマネージC++ユニットテストを行っています。テストは正常に実行され、 coutコールのループが実行されることを確認できます。Visual Studio 2012でコンソール出力を取得する方法ユニットテスト

しかし、私がテストエクスプローラを見ると、テストには が渡されているとマークされていますが、C# プロジェクトでは慣れていたように出力にハイパーリンクはありません。

私の試験の終了時にコードが私はそれがデバッガで をステップとして、私が実行を確認することができ

for (int i = 0; i < 4; i++) 
{ 
    cout << parameters[i]; 
    cout << endl; 
} 

あります。私も cerrで試してみましたが違いはありません。 Microsoftによると

+0

をクリックしますか、 Debug.WriteLineはまだ出力ウィンドウには何もありません。 – n8CodeGuru

+0

代わりに[この質問に記載されている] [1]のようにGoogle Testを使用できますか? [1]:http://stackoverflow.com/questions/16531398/how-can-i-add-a-unit-test-to-ac-console-program-in-visual-studio- 2012 – MichaelH

答えて

1
+0

これはサポートされていないと宣言している接続チケットがありますが、デバッグ情報が出力ウィンドウに表示されます。なぜ断続的に動作するのか分かりません – n8CodeGuru

+0

この質問はC++用ですが。私は明示的にC#のためにこの質問をしています。答えは、時にはうまくいかないことです。なぜ私は分からない。しかし、それは動作します... – n8CodeGuru

19

デバッグを使用することができます::(システムで::診断名前空間)WriteLineメソッド()またはコンソール: :Visual Studio 2012コンソールに出力を書き込むためのWriteLine()

テストコード(System :: Diagnostics名前空間は他の場所で宣言されています) The Test

テスト結果ビュー。 "出力" のリンクをクリックした後

enter image description here

:それはSTD :: coutのを使用していないが、うまくいけば、これはあなたがそれを行うために必要なものでしょう

enter image description here

+2

それを見るための方法はありますか? NUnitでも可能です。 – Babak

+1

@Babak - 私はこの種の出力をライブで見る方法を知らない。ライブ出力を見るための良いオプションは、OutputDebugString()を使用し、この回答で説明されています:http://stackoverflow.com/a/1333542/542494 –

+0

THANK GOD! イエス様、この答えを見つけることがどれほど難しいのか信じられません。ありがとうございました。 – Drew

2

私はあなたに決定的な答えを与えることはできませんが、私は手がかりを与えることができるかもしれません。

_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE); 
_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); 

_CrtDbgReportためhttp://msdn.microsoft.com/en-us/library/8hyw4sy7(v=vs.71).aspxでの説明があります:カスタムビルドステップの間、コンソールウィンドウへの出力を得るために必要な私の古いコードで

は、私は次の行を使用していました。

これは、私のマネージドC++の出力をビルド出力ウィンドウに出力しました。ユニットテストのお手伝いをしたいと考えています。私にとって

16

を使用して動作しているようです:私はConsole.WriteLineをを使用していた場合は、テストを実行した後

Logger::WriteMessage("What ever message");

はあなたがTest Explorerウィンドウに出力を見ることができますoutput

+0

出力ウィンドウ(Ctrl + W、O)で、 "Show output from:"を "General"から "Tests"に変更しなければなりませんでした。 – kjhf

+0

これは "ネイティブ"テストの唯一の方法と思われます。ありがとう。 – ManicQin

+0

Loggerを利用できるようにするには、どのようなリファレンスが必要ですか? –

関連する問題