2011-07-13 10 views
5

私はC++プロジェクトでgoogle testを使用しています。一部の関数は、無効な入力パラメータをチェックするためにassert()を使用します。私は既にDeath-Tests(What are Google Test, Death Tests)について読んで、私のテストケースでそれらを使用し始めました。Googleテストを使用してassert()によって実行時エラーが発生するのを抑制するにはどうすればよいですか?

しかし、アサーションの失敗に起因するランタイムエラーを抑制する方法があるのだろうかと思います。この時点で、失敗したアサーションはそれぞれ、テストを実行するたびに閉じなければならないポップアップウィンドウを作成します。私のプロジェクトが成長するにつれて、この振る舞いはますますワークフローを容認できない形で妨害し、私はassert()アサーションをもうテストしない傾向があります。 私は一般にアサーションを無効にする可能性があることを知っていますが、テストフレームワーク内からOSが生成した警告を抑制する方が便利です。

答えて

2

私は解決策を自分で見つけました。テストスタイルthreadsafeを選択する必要があります。

::testing::FLAGS_gtest_death_test_style = "threadsafe"; 

これは、テストバイナリ内のすべてのテストまたは影響を受けるテストのみで実行できます。後者はより高速です。私は更新されたFAQからこれを得ました:Googletest AdvancedGuide

関連する問題