mirror of
https://github.com/google/googletest.git
synced 2024-12-27 10:11:03 +08:00
Googletest export
Update advanced.md PiperOrigin-RevId: 364839958
This commit is contained in:
parent
4595745f72
commit
5142ccd2d4
@ -813,7 +813,8 @@ initialized from the command-line flag `--gtest_death_test_style`).
|
|||||||
consideration to be run - much like the `threadsafe` mode on POSIX.
|
consideration to be run - much like the `threadsafe` mode on POSIX.
|
||||||
|
|
||||||
Other values for the variable are illegal and will cause the death test to fail.
|
Other values for the variable are illegal and will cause the death test to fail.
|
||||||
Currently, the flag's default value is **"fast"**
|
Currently, the flag's default value is
|
||||||
|
**`"fast"`**.
|
||||||
|
|
||||||
1. the child's exit status satisfies the predicate, and
|
1. the child's exit status satisfies the predicate, and
|
||||||
2. the child's stderr matches the regular expression.
|
2. the child's stderr matches the regular expression.
|
||||||
@ -1374,7 +1375,7 @@ The following statement will instantiate tests from the `FooTest` test suite
|
|||||||
each with parameter values `"meeny"`, `"miny"`, and `"moe"`.
|
each with parameter values `"meeny"`, `"miny"`, and `"moe"`.
|
||||||
|
|
||||||
```c++
|
```c++
|
||||||
INSTANTIATE_TEST_SUITE_P(InstantiationName,
|
INSTANTIATE_TEST_SUITE_P(MeenyMinyMoe,
|
||||||
FooTest,
|
FooTest,
|
||||||
testing::Values("meeny", "miny", "moe"));
|
testing::Values("meeny", "miny", "moe"));
|
||||||
```
|
```
|
||||||
@ -1383,51 +1384,54 @@ INSTANTIATE_TEST_SUITE_P(InstantiationName,
|
|||||||
NOTE: The code above must be placed at global or namespace scope, not at
|
NOTE: The code above must be placed at global or namespace scope, not at
|
||||||
function scope.
|
function scope.
|
||||||
|
|
||||||
Per default, every `TEST_P` without a corresponding `INSTANTIATE_TEST_SUITE_P`
|
The first argument to `INSTANTIATE_TEST_SUITE_P` is a unique name for the
|
||||||
causes a failing test in test suite `GoogleTestVerification`. If you have a test
|
instantiation of the test suite. The next argument is the name of the test
|
||||||
suite where that omission is not an error, for example it is in a library that
|
pattern, and the last is the parameter generator.
|
||||||
may be linked in for other reason or where the list of test cases is dynamic and
|
|
||||||
may be empty, then this check can be suppressed by tagging the test suite:
|
|
||||||
|
|
||||||
```c++
|
You can instantiate a test pattern more than once, so to distinguish different
|
||||||
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(FooTest);
|
instances of the pattern, the instantiation name is added as a prefix to the
|
||||||
```
|
actual test suite name. Remember to pick unique prefixes for different
|
||||||
|
instantiations. The tests from the instantiation above will have these names:
|
||||||
|
|
||||||
To distinguish different instances of the pattern (yes, you can instantiate it
|
* `MeenyMinyMoe/FooTest.DoesBlah/0` for `"meeny"`
|
||||||
more than once), the first argument to `INSTANTIATE_TEST_SUITE_P` is a prefix
|
* `MeenyMinyMoe/FooTest.DoesBlah/1` for `"miny"`
|
||||||
that will be added to the actual test suite name. Remember to pick unique
|
* `MeenyMinyMoe/FooTest.DoesBlah/2` for `"moe"`
|
||||||
prefixes for different instantiations. The tests from the instantiation above
|
* `MeenyMinyMoe/FooTest.HasBlahBlah/0` for `"meeny"`
|
||||||
will have these names:
|
* `MeenyMinyMoe/FooTest.HasBlahBlah/1` for `"miny"`
|
||||||
|
* `MeenyMinyMoe/FooTest.HasBlahBlah/2` for `"moe"`
|
||||||
* `InstantiationName/FooTest.DoesBlah/0` for `"meeny"`
|
|
||||||
* `InstantiationName/FooTest.DoesBlah/1` for `"miny"`
|
|
||||||
* `InstantiationName/FooTest.DoesBlah/2` for `"moe"`
|
|
||||||
* `InstantiationName/FooTest.HasBlahBlah/0` for `"meeny"`
|
|
||||||
* `InstantiationName/FooTest.HasBlahBlah/1` for `"miny"`
|
|
||||||
* `InstantiationName/FooTest.HasBlahBlah/2` for `"moe"`
|
|
||||||
|
|
||||||
You can use these names in [`--gtest_filter`](#running-a-subset-of-the-tests).
|
You can use these names in [`--gtest_filter`](#running-a-subset-of-the-tests).
|
||||||
|
|
||||||
This statement will instantiate all tests from `FooTest` again, each with
|
The following statement will instantiate all tests from `FooTest` again, each
|
||||||
parameter values `"cat"` and `"dog"`:
|
with parameter values `"cat"` and `"dog"`:
|
||||||
|
|
||||||
```c++
|
```c++
|
||||||
const char* pets[] = {"cat", "dog"};
|
const char* pets[] = {"cat", "dog"};
|
||||||
INSTANTIATE_TEST_SUITE_P(AnotherInstantiationName, FooTest,
|
INSTANTIATE_TEST_SUITE_P(Pets, FooTest, testing::ValuesIn(pets));
|
||||||
testing::ValuesIn(pets));
|
|
||||||
```
|
```
|
||||||
|
|
||||||
The tests from the instantiation above will have these names:
|
The tests from the instantiation above will have these names:
|
||||||
|
|
||||||
* `AnotherInstantiationName/FooTest.DoesBlah/0` for `"cat"`
|
* `Pets/FooTest.DoesBlah/0` for `"cat"`
|
||||||
* `AnotherInstantiationName/FooTest.DoesBlah/1` for `"dog"`
|
* `Pets/FooTest.DoesBlah/1` for `"dog"`
|
||||||
* `AnotherInstantiationName/FooTest.HasBlahBlah/0` for `"cat"`
|
* `Pets/FooTest.HasBlahBlah/0` for `"cat"`
|
||||||
* `AnotherInstantiationName/FooTest.HasBlahBlah/1` for `"dog"`
|
* `Pets/FooTest.HasBlahBlah/1` for `"dog"`
|
||||||
|
|
||||||
Please note that `INSTANTIATE_TEST_SUITE_P` will instantiate *all* tests in the
|
Please note that `INSTANTIATE_TEST_SUITE_P` will instantiate *all* tests in the
|
||||||
given test suite, whether their definitions come before or *after* the
|
given test suite, whether their definitions come before or *after* the
|
||||||
`INSTANTIATE_TEST_SUITE_P` statement.
|
`INSTANTIATE_TEST_SUITE_P` statement.
|
||||||
|
|
||||||
|
Additionally, by default, every `TEST_P` without a corresponding
|
||||||
|
`INSTANTIATE_TEST_SUITE_P` causes a failing test in test suite
|
||||||
|
`GoogleTestVerification`. If you have a test suite where that omission is not an
|
||||||
|
error, for example it is in a library that may be linked in for other reasons or
|
||||||
|
where the list of test cases is dynamic and may be empty, then this check can be
|
||||||
|
suppressed by tagging the test suite:
|
||||||
|
|
||||||
|
```c++
|
||||||
|
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(FooTest);
|
||||||
|
```
|
||||||
|
|
||||||
You can see [sample7_unittest.cc] and [sample8_unittest.cc] for more examples.
|
You can see [sample7_unittest.cc] and [sample8_unittest.cc] for more examples.
|
||||||
|
|
||||||
[sample7_unittest.cc]: https://github.com/google/googletest/blob/master/googletest/samples/sample7_unittest.cc "Parameterized Test example"
|
[sample7_unittest.cc]: https://github.com/google/googletest/blob/master/googletest/samples/sample7_unittest.cc "Parameterized Test example"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user