2016-05-11 6 views
0

小さなC++ライブラリを作成しましたので、テストしたいと思います。しかし、静的ライブラリの性質上、main()関数を実行することはできません...まさに私がやりたいことですが。ライブラリのクラスを利用する単純なヘッダーとソースファイルを作成したいので、うまくいかない場合はデバッグできます。私は別のプロジェクトを作成することができますが、それが正しい方法であるかどうかはわかりません。 これを行う方法は他にありますか?私はIDEとしてVisual Studio 2015を使用しています。ユニットテストC++スタティックライブラリ

+5

_「私は別のプロジェクトを作成することができました...」_したがって、特定のIDEで作業していますか?それらの大部分は、個別のユニットテストプロジェクトを持つことが適切な方法です。 –

+0

ああ、私の悪い!私はVS2015を使用し、私はそれで私の質問を編集しました。私は新しいプロジェクトが "過剰な"ものだと考えましたが、今すぐ調べるつもりです – Spook

+5

VSには組み込みのテストプロジェクトテンプレートとテストシステムが組み込まれています(MSTest)。 VSのドキュメントを見てください。 – Dai

答えて

1

しかし、静的ライブラリの性質上、main()関数を実行することはできません...まさに私がやりたいことですが。ユニットテストのために

、それはあなたがテストを(それがテストランナーと呼ばれるものです)を実行するトリガーmain()機能を持っている必要がありますことを終わります。

あなたのライブラリにmain()関数を提供することはできません。これは、ライブラリにリンクする他のプログラムとの衝突につながるためです。

したがって、実行可能なテストランナーターゲットをビルドすることを含む、別のターゲット(プロジェクト)としてビルドされたほとんどのビルドシステム(またはIDE)の場合。

VS2015には、この機能を提供するためにbuiltin project templateがあります。

その他のビルドシステムは、gtestのようなユニットテストフレームワークに依存し、オンデマンドでテストランナーを実現するためにmain()を提供する場合があります。

関連する問題