2

ここにはかなり大きな C++ コンソール アプリケーションがあり、これを Googletest で単体テストする必要があります。

単体テストとテスト実行を別のプロジェクトに保存することをお勧めします。両方のプロジェクトが同じソリューション内にあります。テスト対象のアプリケーションは静的ライブラリとしてではなく、実行可能ファイルとしてコンパイルされるため、テスト プロジェクト内の単体テストから実装コードを参照する方法がわかりません。

すべてのコード ファイルを既存のアイテムとしてテスト プロジェクトに入れたくありません。また、既存の実行可能ファイルを静的ライブラリ レイヤーと対応する「ラッピング」実行可能ファイルに分割するのは大変な作業です。

簡単に言えば、別のテスト プロジェクトを使用して、既存の C++ 実行可能プロジェクトをテスト対象にする良いアイデアはありますか? :)

問題を少し難しくするには、VS 2008 atm を使用する必要があります。

4

2 に答える 2

2

考えられる 1 つの可能性は、メイン プロジェクトのすべてのソースをリンクとして単体テスト プロジェクトに追加することです。

Visual Studio - 同じソースを使用して 2 つのプロジェクトを作成する方法

2 番目のオプションは、メイン プロジェクトで事後処理を使用し、コマンド ラインからメイン プロジェクトまたはその一部を単体テスト プロジェクトにリンクできるライブラリにコンパイルすることです。このように、1 つの「ビルド」アクションで exe と dll/lib ファイルが生成されます。

3 番目のオプションは、上記の 2 つのオプションを組み合わせたものです。VS の外部で単体テスト プロジェクトを管理する - ビルド スクリプト (単純なバッチ ファイルまたは scons、make、ant など) からメイン プロジェクトのソースをコンパイルし、テストのソースを使用します。コマンドラインから実行します。

于 2013-08-15T09:51:13.083 に答える
1

興味を持っていただけると思います

基本的には、メイン プロジェクトに触れず、obj ファイルを静的 lib ファイルに集約するビルド後のアクションを追加することを示しています。次に、テスト プロジェクトをこの静的ライブラリにリンクできます。

私の意見では、メインプロジェクトを変更しない、テストプロジェクトが常に最新の状態になるなど、多くの利点があります...

于 2013-11-05T13:37:59.527 に答える