Apply missing suggestions from code review for GTEST_SKIP

Co-authored-by: Eric Schmidt <shibumi@google.com>
This commit is contained in:
Sebastian Krämer 2021-04-15 22:26:14 +02:00
parent 1de97fd1c3
commit 124e87a303

View File

@ -529,25 +529,31 @@ partially-destructed state! You almost certainly want to `abort` or use
## Skipping test execution ## Skipping test execution
Related to pseudo assertions `SUCCEED()` and `FAIL()` you can prevent further test Related to the assertions `SUCCEED()` and `FAIL()`, you can prevent further test
execution with the `GTEST_SKIP()` macro. execution at runtime with the `GTEST_SKIP()` macro. This is useful when you need
to check for preconditions of the system under test during runtime and skip tests
in a meaningful way.
`GTEST_SKIP` can be used in test cases or in `SetUp()` methods of classes inherited `GTEST_SKIP()` can be used in individual test cases or in the `SetUp()` methods of
from either `::testing::Environment` or `::testing::Test`. The latter is a convenient classes derived from either `::testing::Environment` or `::testing::Test`. For
way to check for preconditions of the system under test during runtime and skip example:
the test in a meaningful way.
Based on googletest's own test code:
```c++ ```c++
class Fixture : public Test { TEST(SkipTest, DoesSkip) {
GTEST_SKIP() << "Skipping single test";
EXPECT_EQ(0, 1); // Won't fail; it won't be executed
}
class SkipFixture : public ::testing::Test {
protected: protected:
void SetUp() override { void SetUp() override {
GTEST_SKIP() << "skipping all tests for this fixture"; GTEST_SKIP() << "Skipping all tests for this fixture";
} }
}; };
TEST_F(Fixture, SkipsOneTest) { // Tests for SkipFixture won't be executed.
EXPECT_EQ(5, 7); // won't fail, it won't get executed TEST_F(SkipFixture, SkipsOneTest) {
EXPECT_EQ(5, 7); // Won't fail
} }
``` ```