0

プロジェクトの単体テストに Google Test と Google Mock フレームワークを使用しています。さまざまな単体テスト プロジェクトがあり、ビルドを自動化してすべてを実行したいと考えています。

単体テストの実行可能ファイルが成功すると 0 を返し、テストが失敗すると 1 (またはその他の値) を返すことを期待していましたが、すべてのテストに合格すると 1 が返されます。GMOCK 警告がいくつか表示されますが、戻り値に影響する警告に関するドキュメントが見つかりませんでした。

テスト フィルタリングを実行して、GMOCK 警告がトリガーされず、戻り値として 1 を取得するテスト ケースを 1 つだけ実行しようとしました。

いくつかの DISABLED テスト ケースがあったので、それらをコメント アウトしました。戻り値としてまだ1を取得しています。

マクロのドキュメントとコード コメントによるとRUN_ALL_TESTS、戻り値は 0 である必要があります。

戻り値 1 の原因は他に考えられません。何か足りないものはありますか?

4

1 に答える 1

7

RUN_ALL_TESTS()gtest.hのマクロの定義を見ると、失敗がなければ0 が返されることが明確に示されています。

// Use this macro in main() to run all tests.  It returns 0 if all
// tests are successful, or 1 otherwise.
//
// RUN_ALL_TESTS() should be invoked after the command line has been
// parsed by InitGoogleTest().

#define RUN_ALL_TESTS()\
  (::testing::UnitTest::GetInstance()->Run())

どうやら (gmock からの) 警告でさえ、戻り値 1 になる場合があります。gmock 警告を取り除くとどうなるか試してください (たとえば、NiceMock<> のような s.th. を使用してモック クラス インスタンスをラップします)。

于 2012-06-21T14:49:10.743 に答える