3

Boost Testを使用して、VisualStudio2010でコードを単体テストしたいと思います。ライブラリの最新バージョンをダウンロードしてビルドしました。

私はここやインターネット上の他の場所でこのテーマについてたくさん読んだことがあり、人々はあなたのテストのためにあなたのソリューション内に2番目のプロジェクトを独占的に持つことを提案しているようです。

いいですね。しかし、実際にこれを設定するのに問題があります。これを設定するための最良の方法についての明確な説明はまだ見つかりません。

単体テストプロジェクトがメインプロジェクトを参照するようにするには、プロジェクト参照を使用する必要がありますか?その場合でも、単体テストプロジェクトのプロパティにメインプロジェクトのインクルードディレクトリとソースディレクトリを追加する必要がありますか?もしそうなら、そもそもプロジェクトリファレンスを使用する利点は何ですか?

単体テストプロジェクトをリンクするには、メインプロジェクトにライブラリを出力させる必要がありますか?繰り返しになりますが、プロジェクト参照はこれを不要にするだろうと思いましたが、プロジェクト参照を本当に理解していないようです。

可能であれば、VS2010のメインプロジェクトと一緒にブーストテストユニットテストプロジェクトを設定するための非常にばかげた証拠を段階的に取得できますか?

ここに示されている方法(1つのプロジェクト、テストをビルドするためのさまざまな構成、または実際のプロジェクトexe)を使用したほうがよいでしょうか:http: //blog.yastrebkov.com/2010/07/boost-test-setup-and-usage .html

どうもありがとう、

4

1 に答える 1

6

Boost.Testプロジェクトの設定の背後に魔法はありません。おそらく、それは通常のC ++(実行可能)プロジェクトであり、「通常の」アプリケーションとまったく同じであるためです。これが私がすることです:

  1. 新しいC++プロジェクトを作成します。私は常にプリコンパイル済みヘッダー付きのWin32実行可能ファイルを選択します。Boost.Testを使用するすべてのテストプロジェクトは「tests.boost.testee_name...」で始まるという命名規則があります。
  2. "stdafx.h"、インクルードを追加して<boost/unit_test.hpp>定義しますBOOST_TEST_MODULE(私は常にプロジェクト名を選択します)。また、このプロジェクトに必要な他のすべてのインクルード(他のブーストライブラリ、stlヘッダーなど)を追加します。これにより、コンパイル時間が大幅に短縮されます。
  3. 受験者はライブラリ(動的または静的)である必要があります。したがって、必要なすべての依存関係に「参照を追加」します。もちろん、ヘッダーのみのライブラリをテストすることもできます。その場合、参照を追加しないでください。
  4. Boost.Testのマニュアルに従って、ソースファイルをテストプロジェクトに追加します。私が適用する規則はBOOST_FIXTURE_TEST_SUITE、ファイルごとに1つです。
  5. 便宜上、ブーストユニットテスト用に調整されたカスタムプロパティシートがあり、これを各ブーストテストプロジェクトに追加します。特に、テストを実行するビルド後のイベントが含まれています。

最近、Visual Studio 2012でMSTestに切り替えました。これにより、テストとテスト結果をより快適に管理できるようになりました。それでも、ソフトウェアの最も重要な部分については、古いツールセットや潜在的に他のプラットフォームでの正確性を確認するために、ブーストテストを作成しています。

乾杯、

ポール

于 2013-01-12T10:51:54.387 に答える