4
在每個「基於文件的集成」測試結束時,我想清除關聯文件的臨時文件夾。如何檢查Google Test TearDown()中的測試是否失敗?
如果測試失敗,我想將文件保留在那裏,以便我可以查看意外輸出。
在Google Test TearDown中有沒有辦法檢查測試是否失敗?
在每個「基於文件的集成」測試結束時,我想清除關聯文件的臨時文件夾。如何檢查Google Test TearDown()中的測試是否失敗?
如果測試失敗,我想將文件保留在那裏,以便我可以查看意外輸出。
在Google Test TearDown中有沒有辦法檢查測試是否失敗?
在Google Test TearDown中有沒有辦法檢查測試是否失敗?
是的,你可以做,在 進行查詢::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