問題タブ [cppunit]

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.

0 投票する
5 に答える
22025 参照

c++ - CppUnit テスト カバレッジ (win32 および Unix) を測定するにはどうすればよいですか?

広範な単体テスト (CppUnit を使用) を含む非常に大きなコード ベースがあります。これらのテストによって実行されるコードの割合を計算し、(理想的には) ライブラリごとまたはファイルごとに実行されたコードの量を示す何らかのレポートを生成する必要があります。

ここにキッカーがあります: これは完全に無人で実行する必要があり (最終的には継続的インテグレーション ビルド内で)、クロスプラットフォームである必要があります (まあ、少なくとも WIN32 と *nix)。

これを行うのに役立つツールまたはツールのセットを提案できる人はいますか? 私は CppUnit から変更することはできません (変更したくもありません。お尻を蹴ります)。

乾杯、

0 投票する
5 に答える
2450 参照

unit-testing - CPPUnit を使用した例外からの回復

私はユニット テスト フレームワークとして CPPUnit を使用してきましたが、現在は自動化されたビルドおよびパッケージ システムで使用しようとしています。ただし、単体テストの実行中にクラッシュが発生した場合 (null ポインターの逆参照など)、残りの自動化が停止するという問題がありました。

CPPUnit が例外から回復し、テストの失敗を記録してから、単体テスト プロセスを終了するのではなく、正常に存在する方法はありますか? null ポインターの逆参照に固有のアプローチでさえ、私が抱えていた問題の約 90% を占めているため、役に立ちます。

テクノロジーに特化するために、私は Windows システムでメイクファイルを使用しています。

0 投票する
10 に答える
310488 参照

c++ - C++ 単体テスト フレームワークの比較

C++ 単体テスト フレームワークの推奨事項に関して既にいくつかの質問があることは知っていますが、フレームワークの 1 つを推奨するだけで、(機能) 比較に関する情報を提供していないため、すべての回答は役に立ちませんでした。

最も興味深いフレームワークは、CppUnit、Boost、および新しい Google テスト フレームワークだと思います。誰もまだ比較をしたことがありますか?

0 投票する
7 に答える
7049 参照

c++ - CppUnit を使用したテストのパラメーター化

私の組織は CppUnit を使用しており、異なるパラメーターを使用して同じテストを実行しようとしています。テスト内でループを実行することは、失敗するとテストが中止されるため、適切なオプションではありません。TestDecoratorandを見てきましたTestCallerが、どちらも実際には適合していないようです。コードサンプルは役に立ちます。

0 投票する
3 に答える
1386 参照

unit-testing - Visual C++TDDセットアップ

私はこれまでVisualStudioをあまり使用していませんでした。私は暇なときに個人的なプロジェクトを開始しました。Java開発で大きなメリットがあったので、テスト駆動開発を使用したいと思います。私はかなり前にこのプロジェクトを開始し、CppUnitを使用しました。おそらく他のより良いフレームワークがあることは知っていますが、これはすでに実施されているものです。

私のVisualStuido2005ソリューションには、2つのプロジェクトが含まれています。単体テストがアプリケーションコードのすぐ横にある場合は、正常に機能しました。プロジェクトの規模が大きくなるにつれて、これは非常に面倒でエレガントではなくなりました。私は自分のソリューションの下で単体テストを収容するための新しいプロジェクトを作成しました(したがって、現在3つのプロジェクトがあります)。ソリューションを構築しようとするまで、すべてがうまくいきました。すべてがコンパイルされましたが、単体テストプロジェクトはリンクできませんでした。出力には、テストで呼び出されるすべての関数のように見えるものに対して、51個の「未解決の外部シンボル」エラー(LNK2019)が表示されます。

私が推測できる限り、問題はVisualStudioが作成するディレクトリ構造です。各プロジェクトは独自のディレクトリを取得し、その下に作成されるオブジェクトファイルと実行可能ファイルがあります。問題は、ヘッダーファイルが各単体テストに適切にインクルードされているのに、リンカがcppファイルを見つけることができないことです。これは、それらが異なるディレクトリにあるためです。呼び出された関数の実装が見つからない場合、2019エラーが発生します。

私は問題の評価に正しいですか?どうすれば修正できますか?プロジェクトを完全に再編成する必要がありますか、それともリンカーの単純な構成ですか?

ありがとう

0 投票する
7 に答える
18519 参照

c++ - 単体テストのデストラクタ?

デストラクタを単体テストする良い方法はありますか? たとえば、この(不自然な)例のようなクラスがあるとします:

#ifdef TEST で hpp ファイルを混乱させたり、カプセル化を壊したりせずに x が削除されることを確認するために、これを単体テストする良い方法はありますか? 私が見ている主な問題は、特にデストラクタが呼び出された時点でオブジェクトがスコープ外にあるため、 x が本当に削除されたかどうかを判断するのが難しいことです。

0 投票する
1 に答える
2145 参照

linker - cppunit リンクエラー

テスト スイートを cppunit に対してコンパイルすると、次のリンク エラーが発生します。

提供された例は問題なくリンクしているため、この問題はわかりません。

マクロを使用してテストを登録しています。

私のテストクラスは CPPUNIT_NS::TestFixture から派生しています

ここに「メイン」コードがあります:

0 投票する
1 に答える
765 参照

c++ - boost::test の CppUnit プロテクターと同等ですか?

と の両方を C++ 単体テストに使用CppUnitboost::testました。boost::test主に、自動テスト マクロがテストをセットアップする労力を最小限に抑えるためです。しかし、私が本当に見逃していることが 1 つありCppUnitます。それは、実行されたすべてのテストを自動的にラップするインスタンスである、独自の「プロテクター」を登録する機能です。(技術的には、テスト「リスナー」をインストールすると、各テストをプロテクタースコープにラップできます)。

私は過去に、ユニットテストの予期しない副作用を監視するために、これらが非常に貴重であることを発見しました (たとえば、コードをチェックしても浮動小数点のユニット状態フラグが変更されていないなど)。boost::test おそらく最も近いかもしれませんが、ドキュメンテーションには同等のものはありBOOST_FIXTURE_TEST_CASEません。

で CppUnit のプロテクターと同じことを達成するための最良の方法について何か提案はありboost::testますか?

boost::test(の実装についてはまだ詳しく調べていませんが、そのようなものであればCppUnit、プロテクター自体に非常によく似たものを使用する必要があります)。

0 投票する
2 に答える
1677 参照

c++ - 単体テスト用の「エコー」デバイス

現在、ハードウェア通信ポートをテストするプログラムの CPPunit テストをいくつか作成しています (はい、テスター アプリの単体テストを作成しています ;-) )。私がテストしているクラスの 1 つは、基本的にデバイスのファイル記述子のラッパーです。ファイル記述子を作成read()してwrite()呼び出します。 Linuxにデバイスファイル/ドライバーがあり、それをwrite()使用すると、そこread()から書き込んだものを読み戻すことができます(FIFOキューデバイスのように)? このデバイス ファイルがあれば、ラッパーの実際のデバイス ファイルの代わりにそれを配置するのは非常に簡単で、実際のハードウェアで発生する可能性のある「ループバック」シナリオを簡単にエミュレートできます。


基本的に私が探しているのは、一種の仮想"/dev/echo"デバイスです。

例: デバイスは次のように動作します。

0 投票する
2 に答える
2878 参照

c++ - Cppunit; テストするクラスをコンパイルしようとしています

私はC++とCppunitの両方にまったく慣れていません。私は小さなcppunitテストをコンパイルしようとしています。しかし、私は成功しません。

これがソースコードです。ここで何が欠けていますか?

----- Coordinate.h ------------------------------------------ -----------------------

----- Coordinate.cpp ------------------------------------------ -----------------------

----- CoordinateTest.h ------------------------------------------ -----------------------

----- CoordinateTest.cpp ------------------------------------------ -----------------------

----- ftest.cpp ------------------------------------------ -----------------------