gtestを使用してアサーションをテストしたいと思います。メソッドは次のようになります。
void aMethod()
{
Q_ASSERT( 1 == geode.getNumDrawables());
DoSomeOtherStuff
}
そして、テストは次のようになります。
TEST_F(aTestClassDeathTest, aTestName)
{
::testing::FLAGS_gtest_death test_style = "threadsafe";
ASSERT_DEATH({ aMethod;}, "1 == geode.getNumDrawables");
}
このテストは、Linuxのgccで正常に機能します。
ただし、WindowsでのVisualStudio2010でのこのテストには問題があります。
テストを実行すると、エラーウィンドウが開きます。アサーションの失敗を示しています。ウィンドウを閉じると、すべてのテストが終了します。テストの失敗はありません。
gtestsは、アサーションの失敗を引き起こす新しいプロセスを開始し、プロセスの出力を評価すると思います。これは機能し、テストに合格します。
ただし、Visual Studioが新しいプロセスが失敗したことに気付くと、エラーウィンドウが作成されます。
エラーウィンドウを抑制するにはどうすればよいですか?