小さなC++ライブラリを作成しましたので、テストしたいと思います。しかし、静的ライブラリの性質上、main()関数を実行することはできません...まさに私がやりたいことですが。ライブラリのクラスを利用する単純なヘッダーとソースファイルを作成したいので、うまくいかない場合はデバッグできます。私は別のプロジェクトを作成することができますが、それが正しい方法であるかどうかはわかりません。 これを行う方法は他にありますか?私はIDEとしてVisual Studio 2015を使用しています。ユニットテストC++スタティックライブラリ
0
A
答えて
1
しかし、静的ライブラリの性質上、main()関数を実行することはできません...まさに私がやりたいことですが。ユニットテストのために
、それはあなたがテストを(それがテストランナーと呼ばれるものです)を実行するトリガーmain()
機能を持っている必要がありますことを終わります。
あなたのライブラリにmain()
関数を提供することはできません。これは、ライブラリにリンクする他のプログラムとの衝突につながるためです。
したがって、実行可能なテストランナーターゲットをビルドすることを含む、別のターゲット(プロジェクト)としてビルドされたほとんどのビルドシステム(またはIDE)の場合。
VS2015には、この機能を提供するためにbuiltin project templateがあります。
その他のビルドシステムは、gtestのようなユニットテストフレームワークに依存し、オンデマンドでテストランナーを実現するためにmain()
を提供する場合があります。
関連する問題
- 1. スタティックライブラリ(.a)にC++コードをコンパイル
- 2. C++スタティックライブラリへのObjective-Cアプリケーションのリンク
- 3. スタティックライブラリ
- 4. スタティックライブラリ
- 5. ユニットテスト(C#)
- 6. スタティックライブラリ用マネージドDLL(C++/CLI)の設計
- 7. Cスタティックライブラリのファイルを参照する
- 8. C++スタティックライブラリの共有グローバル変数:Linux
- 9. スタティックライブラリを別のスタティックライブラリにリンクする
- 10. ユニットテストParallel.Foreach C#
- 11. 自動Cユニットテスト
- 12. C++のスタティックライブラリ&C++アプリケーションでのwxwidgetsの設定の相違点
- 13. Android C/C++ユニットテストARMエミュレータ - Ubuntu
- 14. C#ユニットテストの結果
- 15. 接続/ Cのユニットテスト
- 16. C++の自動ユニットテスト
- 17. JenkinsとcFixユニットテスト(C++)
- 18. 目的C - ユニットテスト&モッキングオブジェクト?
- 19. ユニットテストのプライベートメソッドのC#
- 20. スタティックライブラリの作成
- 21. スワイプコードでスタティックライブラリをロード
- 22. スタティックライブラリ(.lib)ビジュアルスタジオのコードカバレッジ
- 23. 「プラグイン」スタティックライブラリの提案
- 24. スタティックライブラリからのコールバック
- 25. WAF - スタティックライブラリを結合
- 26. スタティックライブラリのオブジェクト登録
- 27. プリコンパイルされたスタティックライブラリ
- 28. 別のスタティックライブラリを共有するスタティックライブラリをリンクする
- 29. ソケットを使ったCユニットテスト
- 30. C#のユニットテストの質問
_「私は別のプロジェクトを作成することができました...」_したがって、特定のIDEで作業していますか?それらの大部分は、個別のユニットテストプロジェクトを持つことが適切な方法です。 –
ああ、私の悪い!私はVS2015を使用し、私はそれで私の質問を編集しました。私は新しいプロジェクトが "過剰な"ものだと考えましたが、今すぐ調べるつもりです – Spook
VSには組み込みのテストプロジェクトテンプレートとテストシステムが組み込まれています(MSTest)。 VSのドキュメントを見てください。 – Dai