問題タブ [boost-test]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - DLL 内のエクスポートされていないクラスの単体テスト
Visual Studio 2008 を使用して C++ アプリケーションを開発し、Boost.Test を使用して単体テストを行います。現時点では、単体テストを含む別のソリューションがあります。
コア ソリューションのプロジェクトの多くは、DLL を生成します。エクスポートされていないクラスをテストできないため、テスト範囲が限られています。
これらをテストする方法について、2 つのアイデアがあります。
- すべてをエクスポート
- テストを DLL 内に配置し (同じプロジェクトとソリューション)、Boost.Test の外部ランナーを使用します。
欠点が何であるかは完全にはわかりません。上記の番号 1 は、モジュール レベルのカプセル化を破り、番号 2 は、特定の構成にのみテスト コードを含めることが可能でない限り、はるかに大きな DLL になる可能性があります。
では、上記の方法には重大な欠点がありますか、それとも他の解決策を考えられますか?
c++ - ブースト テスト ライブラリの実行スイートを異なる「パラメーター」で 2 回実行する
いくつかの異なるモードで実行できる一連のテストがあります。一部のグローバル構成またはフィクスチャ構成を除いて、テスト ケース コードは同じです。
ブースト テスト ライブラリで、個々のテスト ケースすべてにラッパーを記述せずにこれを実現する方法はありますか?
これはコマンド ライン スイッチではなく、同じ実行の一部である必要があります。
c++ - 手動で定義されたスイートツリーでテストケースとスイートフィクスチャをブーストする
Windows x86、AndroidTI2.2でBoost1.46.1を使用する
ユーザーがテストの順序を選択する必要があるため、独自のテストスイートツリーを定義しました。テストは独立している必要があることは承知していますが、これは必須です。テストスイートツリーは、私自身の実装を使用して再定義されましたtest_suite* init_unit_test_suite(int, char**)
。
自動テストケースと自動テストスイートには、Boostマクロがあります:BOOST_FIXTURE_TEST_CASE
とBOOST_FIXTURE_TEST_SUITE( suite_name, F )
。これらのマクロは関数をに登録しますがframework::master_test_suite()
、この場合は望ましくない動作です。
グローバルフィクスチャ(BOOST_GLOBAL_FIXTURE(fixure_name)
)は、手動テストスイート定義では影響を受けません。
手動で定義されたテストスイートとケースには、Boost UnitTestingFrameworkのフィクスチャを使用したいと思います。きちんとした方法。
いくつかの回避策があります:
- テストスイートフィクスチャ-子スイート/ケースの最初と最後のテストとして定義できます。ただし、これはテスト結果に影響を与え、個別のテストとして機能しますが、これは実際には優れたソリューションではありません。
- テストケースフィクスチャ-スコープインスタンスをテストケース関数の周りにラップします。
私の問題に対する他のよりクリーンでより良い解決策はありますか?Boostライブラリを深く掘り下げるためのリソースが本当にありません。一方で、私の側のコードの品質と可読性を大幅に低下させたくはありません。
よろしく、LK
ユニットテストフレームワーク:ユーザーガイド
http://www.boost.org/doc/libs/1_46_1/libs/test/doc/html/utf/user-guide.html
unit-testing - Boost Unit Test の使用に関する問題
Boost Test ライブラリを使用してアプリケーションのテストを作成したいと考えています。
http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/tutorials/new-year-resolution.htmlで見つけたチュートリアルに従って、テスト クラスを開始しました。
したがって、テスト用のクラスを作成しました。単純な .cpp はこれです
OK、true を返すよりももっと賢いことをしなければならないことはわかっていますが、それは問題ではありません。問題は、コンパイルされないことです。チュートリアルのページで説明されているように、最初の 2 行だけでコンパイルするとエラーが発生しないため、ライブラリは正しく読み込まれていると思います。
コンパイルしようとすると、GCC から次のエラー出力が表示されます。
Boost は初めてなので、何をすればよいかわかりません。私が間違っていることは何ですか?チュートリアルと同じ手順を実行したと思いますか?
返信ありがとうございます。
c++ - boost::testによるメモリリークの検出
ここで見つけたこのスニペットのような行番号でmsvcメモリリーク検出を有効にしようとしています:
プリプロセッサ定義を設定しようとしました
_CRTDBG_MAP_ALLOC
プロジェクトのプロパティで手動で取得しますが、これしか取得できません。
行番号なし。また、BOOST_TEST_NO_MAINを使用して手動でメインを定義し、次のように自分でダンプしようとしました。
しかし、成功もしませんでした。これはどのように行うことができますか?
c++ - ブースト テスト ライブラリ: 複数の定義エラー
QTCreator for Windows で作成したライブラリ (Calculus) をテストしようとしています。
テスト用に、メイン ファイルと別のファイルにクラスを作成しました。http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/utf/user-guide/test-organization/manual-test-suite.htmlにある例をコンパイルすると動作します、およびhttp://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/utf/user-guide/test-organization/manual-nullary-test-case.htmlにある例も機能します。
しかし、プロジェクトをコンパイルしようとすると、複数の定義で多くの (500 以上の) エラーが発生します。以下に私のファイルがあります。ご覧のとおり、ブースト ヘッダーの周囲にもガードを配置しようとしましたが、うまくいきません。私は何を間違っていますか?
main.cpp
testcalculus.h
testcalculus.cpp
コンパイル出力
c++ - ブーストテストリンク
Boost test
プロジェクトで使用したい。
私はプロジェクトでcmakeを使用しているので、それCMakeList.txt
をラップするための簡単なものを書きました。
したがって、cmakeはここで正常に機能します。コンパイル中に問題が発生します。
CXX実行可能ファイルのリンク../../bin/UnitTests
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../lib/crt1.o:関数
_start': (.text+0x20): undefined reference to
main'collect2:ldが1つの終了ステータスを返しました
テストフォルダ(LogManagerTest.cpp
)にある唯一のファイルは次のとおりです。
ここで何が問題になっていますか?
c++ - boost.testヘッダーの違い
boost/test/unit_test.hpp
ヘッダーとの違いは何boost/test/included/unit_test.hpp
ですか?どちらも私のプロジェクトで機能しているようで、どちらを使用すべきかわかりません。
xml - boost :: test、junitXML出力
私はC++での単体テスト用のフレームワークを選択します。(私にとって)最良の解決策は、boost :: testです。これは、boost:)に含まれるためです。
ただし、問題が1つあります。フレームワークはJUnit形式でXML出力を生成できる必要がありますが、デフォルトでは、boost::testは人間が読める形式または独自のXML形式のいずれかを生成できます。
- (私が理解しているように)私は自分の(カスタム)ジェネレーターを書くことができます
だから質問:誰かがboost :: testをJUnit形式でレポートを生成する最速の方法を知っていますか?