1. ホーム
  2. c++

[解決済み] GoogleTestで特定のテストケースを実行する方法

2022-02-18 14:50:33

質問内容

私は自分のプロジェクトで、どのテストケースを実行するかユーザーに尋ねる関数/メソッドを書こうとしています。 それは次のようになります...,

Test_Cases_1
         |_TestNo1
         |_TestNo2....so on
Test_Cases_2
         |_TestNo1
         |_TestNo2....so on
....
....so on
Test_Cases_N
         |_TestNo1
         |_TestNo2....so on

さて、課題はプロジェクトを実行中に、実行したいテストケースをすべて表示させることです。 もし私が Test_Cases_1Test_Cases_N . そして、これらの2つのテストケースを実行し、他のすべてのテストケースを Test_Cases_2 to .... . 結果ウィンドウで、次の結果を見たいと思います。 Test_Cases_1Test_Cases_N .

というメソッドがあります。 test_case_to_run_count() ; しかし、すべての test cases が Test_F() メソッドに登録されてしまう。 だから、私は多くの分析を行いましたが、まだ解決策を見つけられませんでした。 どうか私を助けてください。

どのように解決するのですか?

を使用することができます。 高度なオプション をクリックすると、Googleのテストが実行されます。

一部のユニットテストのみを実行する場合は --gtest_filter=Test_Cases1* コマンドラインオプションの値として *? というワイルドカードを使って、複数のテストとマッチングさせることができます。これで問題は解決すると思います。

UPDです。

さて、問題は、どのように 実行 具体的なテストケース gtestとGUIの統合はまた別の話ですが、アプローチの詳細が示されていないので、あまりコメントできません。しかし、私は以下のアプローチが良いスタートとなる可能性があると信じています。

  1. でテストを実行し、すべてのテストケースを取得します。 --gtest_list_tests
  2. このデータをGUIにパースする
  3. 実行したいテストケースを選択する
  4. オプションでテスト実行ファイルを実行する --gtest_filter