単体テストおよびテスト駆動開発において、c++ プログラムをテストするための実行可能ファイルとしてではなく、ライブラリとしてテスト コードをビルドする方がよいのはなぜですか? 両方の主張を聞いたことがあります。
2 に答える
テスト コード用に別の実行可能ファイルをビルドし、それをメイン アプリケーションのビルド後のイベントとして実行できます。このように、テストが失敗した場合、ビルドは失敗します。ほとんどの C++ IDE (Visual Studio、Eclipse、QtCreator など) はこれをサポートしています。
ライブラリと実行可能ファイルの引数は、開発者にテストをどのように使用してもらいたいかによって異なります。
テストをビルド プロセスに統合したい場合は、おそらくコマンドライン実行可能ファイルが必要です。ある種のスタンドアロン GUI アプリからテストを実行できるようにしたい場合は、ウィンドウ ベースの実行可能ファイルが必要になることがあります。メトリクス収集サーバーでテストを実行する場合は、サービスでホストする必要がある場合があります。
これらのメソッドが複数必要な場合は、テストをライブラリにコンパイルしてから、実行可能な各フレームワークにリンクすることを選択できます。しかし、コマンド ラインで実行する必要があるだけなら、GUI やサービス オプションは必要なく、別の静的ライブラリを構築してもメリットはありません。
どちらのアプローチも「より良い」ものではありません。チームの特定の状況とチームの基準に基づいて、必要なアプローチを選択してください。また、現在はそれほど重要ではない可能性もあります。実行可能なテスト ハーネスのみから開始する場合は、後でいつでもテストを静的ライブラリに分割できます。
テスト実装の詳細について立ち止まって口論するよりも、今すぐ自動テストを作成して実行することの方がはるかに重要です。