2017-03-16 10 views
4

"ファイルベースの統合"テストの終わりに、関連するファイルの一時フォルダをクリアします。Google Test TearDown()でテストが失敗したかどうかを確認するにはどうすればよいですか?

テストが失敗した場合は、ファイルを残しておきたいので、予期せぬ出力を確認できます。

Google Test TearDownにテストが失敗したかどうかを確認する方法はありますか?

答えて

3

テストが失敗したかどうかを確認するためにGoogleのテストティアダウンでの方法はありますか?

はい、あなたはそれがあなたのフィクスチャの::testing::Test::HasFailure() でテストケースを照会し、そのTearDown()で照会することができ 器具の相手部材に障害を集計した結果を使用して行うことができます。基本例:

#include <gtest/gtest.h> 
#include <iostream> 

struct Fixture : public ::testing::Test { 
    virtual void SetUp() { 
     fails = 0; 
    } 

    virtual void TearDown() { 
     if (fails > 0) { 
      std::cerr << "Fixture::TearDown sees failures" << std::endl; 
     } 
    } 

    unsigned fails; 
}; 

TEST_F(Fixture, foo) { 
    EXPECT_EQ(1,0); 
    fails += ::testing::Test::HasFailure(); 
} 
TEST_F(Fixture, bar) { 
    EXPECT_EQ(1,1); 
    fails += ::testing::Test::HasFailure(); 
} 

int main(int argc, char **argv) { 
    testing::InitGoogleTest(&argc, argv); 
    return RUN_ALL_TESTS(); 
} 

そして出力:

[==========] Running 2 tests from 1 test case. 
[----------] Global test environment set-up. 
[----------] 2 tests from Fixture 
[ RUN  ] Fixture.foo 
/home/imk/dev/so/gtest/main.cpp:19: Failure 
     Expected: 1 
To be equal to: 0 
Fixture::TearDown sees failures 
[ FAILED ] Fixture.foo (0 sec) 
[ RUN  ] Fixture.bar 
[  OK ] Fixture.bar (0 sec) 
[----------] 2 tests from Fixture (0.001 sec total) 

[----------] Global test environment tear-down 
[==========] 2 tests from 1 test case ran. (1 ms total) 
[ PASSED ] 1 test. 
[ FAILED ] 1 test, listed below: 
[ FAILED ] Fixture.foo 

1 FAILED TEST 
関連する問題