問題タブ [googletest]
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.
unit-testing - Jamでgtest_mainライブラリを使用してgoogletestユニットテストを構築するにはどうすればよいですか?
使用できる可能性のある新しい単体テストフレームワークとして、概念実証用のgoogletest単体テストを構築しようとしています。googletestでは、単体テストを作成する方法が2つあります。メインを使用する方法とメインを使用しない方法です。mainを定義しない場合は、main()関数を含むgtest_mainライブラリにリンクして、時間を節約できます。私の環境では、Jamを使用してバイナリを構築しています。コード内でmain()を使用してlibgtestライブラリを使用してコンパイルするバイナリを取得しましたが、mainを使用せずにJamでビルドする方法を探しています。
基本ケース(main()関数を使用):
私はこれでバイナリを構築することができます:
壊れたケース(main()関数なし):
これでバイナリを作成することはできません。オブジェクトをリンクしようとすると、多くのエラーが表示されます。
何とかへの未定義の参照に関連する多くのリンカーエラーが発生します。未定義の参照は、私のコードの一部ではないtesting::internal名前空間から来ているようです。
これをどのように攻撃できるか、または問題に関するより多くの手がかりを探す方法について何か考えはありますか?
c++ - Eclipseでgoogletestを使用する:どのように?
Google テストをダウンロードしましたが、Eclipse で自分のプロジェクトにリンクする方法がわかりません。ソースフォルダーとして追加する必要がありますか? g++ に含まれるライブラリとして含める必要がありますか? そして、どうすればテストを実行できますか?
c++ - テンプレート引数を含むメソッドをマクロに渡す
Google Test のASSERT_THROW()
マクロを複数のテンプレート引数と組み合わせて使用できません。Matrix<5,1>
スローの構築を確認したいと考えてください。
(この例はあまり意味がありません。もちろん、これはスローされるべきではありませんが、私が持っていたものを単純化した後に残ったものです。)
MS VC++ 2008 からこの出力を取得します。
次のものには問題はありませんが、
どうすればこの問題を克服できますか?
ありがとう!
c++ - C++ クラスのコンストラクターで例外をスローするのは良い習慣ですか?
例外をスローするこのコンストラクターがあります
initHints() は、_hints の memset を実行し、いくつかの変数を設定します。
次のようなGoogleテストフレームワークでテストします。
テストはコア ダンプで失敗します。
何が問題なのか正確にはわからないという事実に加えて、初期化されていないオブジェクトが削除されているのではないかと疑っています (?)。オブジェクトの作成後に呼び出すことができる別の関数にこの機能を配置し、後で例外を処理する方がよいでしょうか?
visual-studio - $(OutDir)、$(TargetName)、$(TargetExt)、および %(Lib.OutputFile) を Visual Studio で設定する方法は?
Visual Studio 2010 でgtestをビルドしようとしています。ソリューション ファイルを変換した後、ビルドしようとしましたが、次の警告メッセージが表示されました。
メッセージには、で指定されたプロパティ値とともに、変数$(OutDir)
、$(TargetName)
およびをセットアップする必要があることが示されています。$(TargetExt)
%(Lib.OutputFile)
Visual Studio (特に VS 2010) でそれを行うにはどうすればよいですか?
c++ - Google Test で exception.what() を表示
私のコードのいくつかは、
テストを自動的に実行するために Google Test と TeamCity を使用しています。これは Windows で実行されているため、 --gtest_catch_exceptions パラメータを使用して、予期しない例外が発生した場合にテストが失敗したことを報告します。ただし、Google Test は単に次のようなメッセージでテストに失敗します
これはあまり役に立ちません。みたいなメッセージがあればいいのに
メソッドを実装するカスタム TestListener があります
しかし、Google Test によってキャッチされた例外への参照はないようです。例外を std::cout または他の場所に報告する他の方法はありますか?
使えませんのでご了承ください
--gtest_catch_exceptions を指定しないと、最初の例外でテストの実行が「キャンセル」されるためです。
また、スローコードを変更したくありません。
アイデアをありがとう!
visual-studio - msbuild を使用していくつかのプロジェクト構成をビルドする方法
gtest の msvc ディレクトリには gtest プロジェクト ファイルがあり、それを Visual Studio で開くと、バッチ ビルドで 8 つの構成 (gtest/gtest_main/gtest_prod_test/gtest_unittest x release/debug) からビルドを選択できます。
msbuildツールで同じことを行うにはどうすればよいですか? たとえば、msbuild に gtest/Debug または gtest_unittest/Release をビルドするように指示するにはどうすればよいですか?
unit-testing - ブーストテスト対グーグルテストフレームワーク
私はユニットテストの世界に不慣れです。基本的に私はc++開発者であり、ほぼ3年間大規模な製品に取り組んでいます。そして今、コードの自動ユニットテストを実行することにしました。このために私はインターネットで多くの調査を行い、多くのツールとフレームワークに出会い、最終的に次の2つを選択しました:1)ブーストテストライブラリ2)c++用のGoogleテストフレームワーク
今、私はそれらからどれを選ぶべきかについて混乱しています。誰かが上記のいずれかを使用している場合は、あなたの経験を共有してください。
c++ - パラメータを gtest に渡す方法
パラメータをテスト スイートに渡すにはどうすればよいですか?
次のメイン gtest コードがあります。InitGoogleTest --number-of-input=5
() に渡す必要があります。
次のようにパラメータをテスト スイート/ケースに渡す方法がわかりません。
追加した
argv[i] after を表示するように main メソッドを変更しましたInitGoogleTest()
。
これは gtest: に与えられる引数です./s --number-of-input=5 --gtest_filter=Test_Cases1*
。
結果は次のとおりです。
gtest は、 の名前を持たないテストを除外し、 でTest_Cases1
始まるもの以外の正しい引数も表示しますgtest
。
リファレンス - GoogleTest で特定のテスト ケースを実行する方法
c++ - QTest を他のフレームワークと比較する
C++ の一般的な単体テスト フレームワークと Qt の QTest を比較できますか?
(cppunit、Boost テスト、Google テストなど)
メリット・デメリットは?ありがとうございました。
注: GUI テストは私たちにとってあまり重要ではありません。