2016-11-25 1 views
-1

C/C++アプリケーションをテストしています。大部分のメソッドでは、CppUTestを使って単体テストを書くことができました。 しかし、そうでないものがいくつかあります。これらのメソッドもテストするために、統合テストとエンドツーエンドテストを作成したいと思います。 は私がC++アプリケーションのエンドツーエンドテストフレームワーク

  • 正しい出力ファイルが適切なエラーメッセージが印刷されinvalud引数の

  • 生成されているかどうかをテストすることは

  • それが正しい出力messgaesが表示されます(これはコマンドラインツールです)

私の質問は、このためのツールがあるか、私はいくつかのスクリプトをi私のアプリケーションをnvoke、出力をキャプチャなど?はいの場合、これらのスクリプトをどのように起動するのですか? CppUtestから呼び出しますか?

+0

:「その代わり、この問題を説明し、何がそれを解決するために、これまで行われてきました」私はそれを記述したと思う。代わりに、経験のない特定のソフトウェア推奨を望んでいません。このような状況で他の人が何をするのか不思議です。 – robert

答えて

1

私は正しい出力をテストするためのいくつかの方法を知っている:

あなたはCMakeのとCTESTを使用する場合は、あなたが期待される出力を使用してプログラムの出力を比較するためにCTESTを使用することができます。テキスト出力(スクリーン出力は通常通り)のみで動作し、時間/日付の乱数やそのようなものを出力すると動作しません。 CMakeのmanuelでadd_test_output_check()を探します。

プログラムが標準出力にハードコーディングされた書き込みをしない場合は、あなたがSTDを渡すことができ:: ostringstreamし、その後、お好みのユニットテストフレームワークを使用して文字列の内容をテストします。

なく、少なくとも最後に、あなたは、stdoutとstderrのために他のファイル記述子を定義するテストを実行し、終了時にファイル(複数可)の内容をチェックするために)(dup2の使用することができます。

出力ファイルについては、リファレンス出力ファイルを作成し、このファイルの内容とテストで生成されたファイルを比較する必要があります。両方のファイルを読み込み、memcmp( )をデータに適用します。最密とdownvoters @

関連する問題