問題タブ [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 投票する
1 に答える
148 参照

cppunit - CPPUnit でのテストケースの選択

NUnit で行われるように、CPPUnit で実行するテスト ケースを選択することはできますか? 設定ファイルを使用している可能性がありますか?

ありがとう、ラケシュ。

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

c++ - Unit Testing のソースをどこに配置して、内部コンポーネントを公開すればよいですか?

ATL 経由でコンポーネントを公開するプロジェクトを引き継いでいます。

このセットアップでカバーする単体テストの主な領域は 2 つあります。

  • 内部コンポーネントのテスト (COM 経由で公開される場合と公開されない場合があります)
  • 外部に公開されたコンポーネントのテスト (別名、公開されたインターフェースのテスト)

現在、プロジェクトには、すべての内部コンポーネントの単体テストがソリューション内にあります。これらは、実行時にコンパイルして実行するプリプロセッサ フラグによって有効になります。

私が行ってきた調査から、「標準」は、単体テストを別のサブプロジェクトに配置し、単体テストが内部コンポーネントにアクセスするための主要なソリューション供給フックを持つことであるようです。このセットアップでは、単体テスト ソリューションは、テスト対象のソリューションへの依存関係を設定します。これは本当に「規範」なのか、それとも単体テスト フレームワークをテスト対象のソリューション内に配置する人がたくさんいるのでしょうか (別名、単体テストはサブ プロジェクトではなく#ifdef、プリプロセッサ フラグが指定されていない)?

現在使用されている単体テスト フレームワークは cppunit のようで、gtest に切り替えて、すべてを別のサブ プロジェクトに移動しようと考えていましたが、長期的にはその努力が価値があることを確認したいと考えています。

私が考えた 1 つの方法は__declspec、クラスをテストすることでした。クラスは、プリプロセッサの定義が指定されている場合にのみ公開されます。次に、別の単体テスト サブプロジェクトにより、そのプリプロセッサがメイン ソリューションにインナーを公開するように指示できるようになります。これが最善のルートかどうかはわかりません。

だから私の質問は:

  1. 単体テストを別の(サブ)プロジェクトに配置し、テストされるソースからコンポーネントを公開するのは標準ですか(フックを介して、クラス定義を公開するなど)?
  2. COM DLL から内部コンポーネントを公開する最良の方法は何ですか?
  3. 内部コンポーネントのテストを可能にするプリプロセッサ フラグ__declspecは悪い考えでしょうか? テスト対象の項目が通常の操作中に通常は公開されない単体テストで、他の誰かがこれを行ったことがありますか?

コメントありがとうございます!

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

c++ - CppUnit と Visual Studio 2010 の概要

目がくらみ、混乱するまで答えを探しました。

Visual Studios 2010 を使用した Windows XP 環境を使用しています。CppUnit 1.12.1 を Sourceforge から C:\CppUnit にダウンロードして展開しました。Visual Studio を使用して src/CppUnitLibraries.dsw を開き、開いたすべてのプロジェクトをバッチ ビルドして lib ディレクトリにライブラリを設定する必要があることを理解しています。これは基本的に、CppUnit の「インストール」プロセスの範囲です。

ただし、CppUnitLibraries.dsw を開こうとすると、Visual Studio はプロジェクトを現在の Visual C++ プロジェクト形式に変換する必要があると表示します。「はい」(プロジェクトを変換して開くため) をクリックすると、プロジェクト ファイルを読み込めないと表示され、アンロード可能なプロジェクトをソリューションから削除するかどうかを尋ねられますが、確かなので「いいえ」と答えます。これは私が望んでいることではありません。CppUnitLibraries.dsw ソリューションの多くのプロジェクトでこれを行いますが、これは望ましくない動作だと思います。

私の検索結果のいくつかは、src\msvc6\testrunner\MsDevCallerListCtrl.cpp を開く必要があることを示しており、次の行を見つけてください...

#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids"

...そして、7.0 を 10.0 に置き換えます。しかし、これは役に立ちません。

私は何か間違ったことをしていますか?CppUnit を使い始めるにはどうすればよいですか? (これが非常に初心者の質問である場合は申し訳ありません。私は立ち往生し、イライラし、非常に混乱しています。)

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

cppunit - テスト ケースの nunit の Category 属性に相当する cppunit はありますか?

テスト ケース用の nUnit の Category 属性と同等の関数が必要です。

多数の C++ テスト ケースを継承しました。その一部は単体テストであり、一部は実行時間の長い統合テストであり、統合テスト ケースを無視するように継続的統合ビルド プロセスを設定する必要があります。

すべての統合テスト ケースにタグを付けて、CI ビルド中にそれらを除外するように cppunit に指示することをお勧めします。

私は cppunit の機能を見落としていますか、それともこれを実現する別の方法はありますか?

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

c++ - CppUnit、非常に単純なテストコードがクラッシュしたのはなぜですか?

私はCppUnitを学習しており、TestRunner :: run()を呼び出すとコードがコアダンプされます。これは、以下のコードの34行目です。何も悪いところは見えません。これは、CppUnitクックブックのサンプルコードとほぼ同じです。

出力:

スタックトレース:

コンパイル行:g ++ -g -o -Wall test_runnertest_runner.cpp-lcppunit
警告なしで正常にコンパイルされます。
「-Wall」をオンにすると、エラーが発生しました。

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

c++ - GoogleTest vs CppUnit:事実

今後数年間のC++ユニットテストフレームワークを設定する過程で、GoogleTestCppUnitを最終候補に挙げました。私は両方の経験があり、私の好みはGoogleTestです。とにかく上司を説得するためにいくつかの事実が必要なので、マニュアル、ウィキページ、いくつかの情報源など、インターネットでいくつか読んだ。私はGoogleTestの利点と単一のCppUnitの利点(グラフィックテストランナー)のリストを思いついた。ここでは、それらは認識された有用性によって順序付けられています。

  • INSTANTIATE_TEST_CASE_Pは、デカルト積を含む、必要なパラメーターのセットを使用してテストケースをインスタンス化します。
  • プライベートクラスメンバーをテストするためのFRIEND_TEST(すべてのレガシーコード用)
  • アサートをブレークポイントに変える
  • 致命的ではない主張
  • 「箱から出して」googlemock統合
  • 自動テスト検出、それらを列挙する必要はありません
  • テストは無効および有効にできます
  • 実行するテストは、名前パターンを使用して選択できます
  • 値/型パラメーター化されたテスト
  • ユーザー定義の述語がアサートします
  • 死のテスト
  • はるかに豊富な一連のアサート
  • タイプがアサートします
  • サブルーチンでのアサート
  • <<を使用して、追加のデバッグ情報をアサートに追加できます。
  • RecordPropertyは、プロパティの最後の値をXML出力に出力します
  • SCOPED_TRACEは、サブルーチンまたはループの内部から発生するアサーション障害のコンテキストを理解するのに役立ちます。
  • xUnit XML出力。XSLT変換を行わなくても、Jenkinsですぐに表示できます。
  • カスタムタイプのプリンタをサポート
  • テスト表示にかかる時間(これはCppUnitでも可能だと思いますが、まだ理解していません)
  • テストイベントリスナーAPI(ユーザー定義プラグイン)
  • テストシャッフル
  • 例外なしとRTTI

上記のすべてがCppUnitでサポートされていないと仮定して正しいですか?不足しているCppUnitで 利用できない便利なGoogleTest機能はありますか?

最後になりましたが、GoogleTestに欠けている優れたCppUnit機能はありますか?

ありがとう!

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

.net - Visual C ++ 2005用のCPPUnitをインストールするにはどうすればよいですか?

いくつかのユニットテストを開始したいのですが、CPPUnitのセットアップ方法について本当に混乱しています。私はオンラインでさまざまなチュートリアルやガイドを見て、何をすべきかを見つけましたが、何をすべきかについては非常に多くのバリエーションがあります。私はいくつかの方法を試しましたが、どれもうまくいかないようです。誰かが私を正しい方向に向けることができれば、私は非常に感謝しています。私は現在VisualStudio2005を使用しており、ほとんどのアプリは主にMFCです。また、かなりの量の.netアプリを作成しているので、理想的には両方で機能させたいと思います。私は大規模な初心者なので、説明するときは、技術的な専門用語を最小限に抑えてください。おそらく理解できないでしょう。

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

c++ - cppunit クラスを使用したコンパイル ソース ファイルのエラー

次のコマンドを使用して、kubuntu 11.10 に cppunit ライブラリをインストールしました。

sudo apt-get install libcppunit-1.12-1 libcppunit-dev libcppunit-doc sudo apt-get install libcppunit-subunit-dev libcppunit-subunit0

この前に、次のapt-cache search cppunitコマンドを実行します。結果として:

単体テストを学習するための簡単なソース ファイルがあります。

しかし、g ++を使用してcppファイルをコンパイルすると、次のエラーが発生します:

どうしたの ?

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

c++ - 既存のプロジェクトで CPPUnit テストを作成するには、どの .cpp および .h ファイルが必要ですか?

私のアプリケーションにいくつかのテストを追加しようとしていますが、これを行う方法と必要なものがわかりません。テスト自体を作成するだけで基本的なテストを実行できましたが、プロジェクトに追加しても実行できません。テスト用に独自のプロジェクトを作成した場合に機能したテストを次に示します。

Test1.h

Test1.cpp

CPPUnitMain.cpp (CPPUnit のサンプル フォルダーから取得)

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

c++ - CPPUnit テストの書き方

さて、私は基本的にボールを転がしてCPPUnitテストを書きたいと思っていますが、どうすればいいのかわかりません。ここに、関連付けられたボタン グループと位置の引数のメニュー ボタンへのポインタを基本的に取得するコードがいくつかあります。このテストを作成するにはどうすればよいでしょうか。

@Fabio Ceconello への返信として、このようなコードに対していくつかのテストを設定することは可能でしょうか?