問題タブ [cxxtest]
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.
tdd - CxxTest はパラメータ化されたテストを実行できますか?
この記事によると、次のようなコードを使用して、GoogleTest フレームワークでパラメーター化されたテストを作成できます。
プラスいくつかの足場。
CxxTest ユーザー ガイドを読んだ後、パラメーター化されたテストについて言及されていないことに気付きました。CxxTest でもパラメータ化されたテストは可能ですか?
この質問は似たようなものに対処しているように見えますが、答えは決して簡単ではありません。
私は C++ 単体テストが初めてです。パラメータ化されたテストは大したことではないのでしょうか? 前回の C# NUnit プロジェクトでは、ほとんどすべてのテストがパラメーター化されていました。
c++ - 大規模な C および C ++ コードベースを使用した Gtest
私は、大規模なコードベースを持ち、現在ユニット テスト フレームワークがまったくないプロジェクトに取り組んでいます。私たちが取り組んでいるコードは、スイッチ/ルーター/ファイアウォールとして機能するボックスで最終的に実行されます。
そのため、Gtest を使用して単体テストする必要があるコードに取り組んでいます。これに関する問題は、関数自体をテストするために変数をモックすることです。たとえば、さまざまなオブジェクトへの4つのポインターを使用し、いくつかのグローバル変数を使用する関数があります。コードでさまざまなパスをテストするには、依存変数の状態マシン/値のほぼ全体を初期化する必要があります。私が書いたこの関数/メソッドは、同様にテストする必要がある他のルーチン/メソッドの束を使用する大規模なコードベースに当てはまるため、複雑さを増しています。それらのそれぞれは、それぞれ独自の依存関係を持っているため、単体でテストする必要があります。問題に正しくアプローチしているのか、それとも gtest がそのような大規模なコードベースをテストするための適切なツールではない可能性があるのか はわかりません。
テストの経験がある人なら、コールスタックと言う
このようなものです。これらすべての機能AFをテストするにはどうすればよいですか?? 良い戦略とは??
c++ - CxxTest の automake ファイルを作成するにはどうすればよいですか?
CxxTest のドキュメントには、単体テストを生成して実行する Makefile の例があります。automake (Makefile.am) で同じことを行うにはどうすればよいですか?
c++ - Is there a way to know what proportion of code is covered by test with CXX test?
I am using CXX test to do unit testing in my program. I would like to know if there is a way to know what percentage of the program is covered by tests or have any other metric to see how well the program is covered by tests.
I am programming in C++ using Eclipse Luna under Ubuntu 14.04.
Thank you
cmake - CMake が CxxTest パッケージを見つけられない
CxxTestCMakeLists.txt
を使用してテスターをビルドするために、次のように記述しました(これは、 によって提供されるほぼ標準的な例です)。FindCxxTest
問題は、フォルダー cxxtest と存在するディレクトリ内のファイルがあるにもかかわらず、 CxxTestが見つからないことです。cxxtest/TestSuite.h
CMakeLists.txt
のソースコードを調べて、FindCxxTest.cmake
どこまで到達するかを確認しましたが、パスさえ見つかりませんCXXTEST_INCLUDE_DIR
。
別の検索パスなどを設定する必要がありますか? Windowsでテストしています。
c++ - CMake が cxxtestgen の実行に失敗する
学校のプロジェクトのテストを実行するために、次の CMake cmakelist.txt ファイルを試しています。
しかし、次のエラーが発生します。
それを除外するために、CLionの外で実行しようとしました。コマンド ラインから cxxtestgen をまったく問題なく実行できます。
アイデアや回避策はありますか?できれば CMake を使用して、これらの単体テストを実行できるようにする必要があります (CLion との統合の利点を享受するため)。
c++ - Visual Studio のビルド イベント コマンド ラインと通常のコマンド ラインとの違いはありますか?
Visual Studio でテスト プロジェクト (CxxTest) をビルドし、ビルド後のイベントを介してすぐに実行します。これは機能し、すでに長い間機能しています。コマンドラインシェルから手動で実行する場合と比較して、ビルド後のイベントでの実行では動作が異なります。次のコードは、手動または Visual Studio デバッガーを使用して exe を起動する場合と比較して、ビルド後のイベントでの動作が異なります。
これは、次のヘルパー関数です。
同じメソッドで tResult の複数のインスタンスに対して getValueFromStruct(tResult) が呼び出された場合にのみ問題が発生するようです。
2つの方法の間に、環境、ランタイムライブラリ、または何か他のものの間に違いはありますか? Visual Studio はビルド イベントのコマンド ライン環境を操作していますか?
この問題は、リリースおよび x64 モードでのみ発生します。そして、ビルドサーバーではなく、私のマシンでのみ発生します。しかし、サーバーのようにビルドスクリプトを介して自分のマシンにビルドしたときにも発生します。
この問題を回避する 3 つの方法を見つけました。
- 関数の結果を引数として直接渡すのではなく、一時変数を使用します。
- test.exe の最適化を無効にする
- test.exe の「インライン関数展開」を「無効 /Ob0」に設定します。
ただし、ビルド イベントと通常のコマンド ラインで動作が異なる理由は説明されていません。
c++ - CxxTest のコンパイル、メインの欠落
単体テストに CxxTest を使用しています。私はドキュメントに従いました。
最初に実行したコマンドは次のとおりです。
コマンドの出力はrunner.cpp
ファイルです。
ドキュメントによると、次のコマンドは次のようになります。
しかし、実行できません。エントリーポイントが見つからないというエラーが表示されます。つまり、runner.cpp
メインがありません。
CxxTest に含まれるテスト ファイルでも同じことが起こります。
Windows 8.1 を実行しています。
私の質問は重複としてマークされていますが、別の質問で解決策が見つかりませんでした。私は GUI アプリケーションを構築していません。質問は CxxTest に関するもので、関数なしでどのように開始するのmain()
ですか? エントリーポイントはどこ?
c++ - 単体テストのために内部関数の戻り値を操作していますか?
現在、いくつかのレガシー コードの単体テストを作成しようとしています。私の関数の 1 つで、別の関数を呼び出します。内部関数の戻り値によると、3 つの分岐条件が存在します。コードは C++ で記述されており、cxxtest フレームワークを使用しています。内部関数の戻り値を実装せずに操作して、すべての分岐条件を通過できるようにするにはどうすればよいですか? 関数間の依存関係を避けることを好みます。これを行う方法はありますか?
c++ - MinGW / CxxTest の奇妙なエラー
あなたが私を助けてくれることを願っています。メインの開発マシンで CxxTest を使用して小さなプロジェクトを作成しました。このマシンではすべてがうまく機能し、問題はありません。しかし、このプロジェクトを新しいラップトップでセットアップしようとしましたが、うまくいきません! CxxTest ではなく、MinGW のインストールに問題があると思われますが、それを知るのは非常に難しく、エラーは CxxTest ファイルから発生しています。これは、プロジェクトのフォルダー構造です。
コマンドラインで次を実行します。
これにより、runner.cpp が生成されます。今私は実行します:
これは通常、正常に動作し、runner.exe を出力して単体テストを実行します。私のラップトップでは、何千ものエラーが発生します。最初のいくつかだけを見てみましょう。
単純な hello world ファイルで g++ を実行すると、正常に動作します。誰が何が起こっているのか知っていますか?