mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Reword the SKIP docs a bit
This commit is contained in:
		| @@ -5,11 +5,18 @@ | |||||||
|  |  | ||||||
| > [Introduced](https://github.com/catchorg/Catch2/pull/2360) in Catch2 X.Y.Z. | > [Introduced](https://github.com/catchorg/Catch2/pull/2360) in Catch2 X.Y.Z. | ||||||
|  |  | ||||||
| In some situations it may not be possible to meaningfully execute a test case, for example when the system under test is missing certain hardware capabilities. | In some situations it may not be possible to meaningfully execute a test case, | ||||||
| If the required conditions can only be determined at runtime, it often doesn't make sense to consider such a test case as either passed or failed, because it simply can not run at all. | for example when the system under test is missing certain hardware capabilities. | ||||||
| To properly express such scenarios, Catch2 allows to explicitly _skip_ test cases, using the `SKIP` macro: | If the required conditions can only be determined at runtime, it often | ||||||
|  | doesn't make sense to consider such a test case as either passed or failed, | ||||||
|  | because it simply can not run at all. | ||||||
|  |  | ||||||
| **SKIP(** [streamable expression] **)** | To properly express such scenarios, Catch2 provides a way to explicitly | ||||||
|  | _skip_ test cases, using the `SKIP` macro: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | SKIP( [streamable expression] ) | ||||||
|  | ``` | ||||||
|  |  | ||||||
| Example usage: | Example usage: | ||||||
|  |  | ||||||
| @@ -24,7 +31,8 @@ TEST_CASE("copy files between drives") { | |||||||
|  |  | ||||||
| This test case is then reported as _skipped_ instead of _passed_ or _failed_. | This test case is then reported as _skipped_ instead of _passed_ or _failed_. | ||||||
|  |  | ||||||
| The `SKIP` macro behaves similarly to an explicit [`FAIL`](logging.md#top), in that it is the last expression that will be executed: | The `SKIP` macro behaves similarly to an explicit [`FAIL`](#passing-and-failing-test-cases), | ||||||
|  | in that it is the last expression that will be executed: | ||||||
|  |  | ||||||
| ```c++ | ```c++ | ||||||
| TEST_CASE("my test") { | TEST_CASE("my test") { | ||||||
| @@ -34,7 +42,8 @@ TEST_CASE("my test") { | |||||||
| } | } | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| However a failed assertion _before_ a `SKIP` still causes the entire test case to fail: | However a failed assertion _before_ a `SKIP` still causes the entire | ||||||
|  | test case to fail: | ||||||
|  |  | ||||||
| ```c++ | ```c++ | ||||||
| TEST_CASE("failing test") { | TEST_CASE("failing test") { | ||||||
| @@ -45,7 +54,8 @@ TEST_CASE("failing test") { | |||||||
|  |  | ||||||
| ### Interaction with Sections and Generators | ### Interaction with Sections and Generators | ||||||
|  |  | ||||||
| Sections, nested sections as well as test cases with [generators](generators.md#top) can all be individually skipped, with the rest executing as usual: | Sections, nested sections as well as specific outputs from [generators](generators.md#top) | ||||||
|  | can all be individually skipped, with the rest executing as usual: | ||||||
|  |  | ||||||
| ```c++ | ```c++ | ||||||
| TEST_CASE("complex test case") { | TEST_CASE("complex test case") { | ||||||
| @@ -62,12 +72,17 @@ TEST_CASE("complex test case") { | |||||||
| } | } | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| This test case will report 5 passing assertions; one for each of the three values in section `a1`, as well as one for each in `a2`, except for when `value == 4`. | This test case will report 5 passing assertions; one for each of the three | ||||||
|  | values in section `a1`, and then two in section `a2`, from values 2 and 4. | ||||||
|  |  | ||||||
| Note that as soon as one section is skipped, the entire test case will be reported as _skipped_ (unless there is a failing assertion, in which case it will be reported as _failed_ instead). | Note that as soon as one section is skipped, the entire test case will | ||||||
|  | be reported as _skipped_ (unless there is a failing assertion, in which | ||||||
|  | case the test is handled as _failed_ instead). | ||||||
|  |  | ||||||
| If all test cases in a run are skipped, Catch2 returns a non-zero exit code by default. | Note that if all test cases in a run are skipped, Catch2 returns a non-zero | ||||||
| This can be overridden using the [--allow-running-no-tests](command-line.md#no-tests-override) flag. | exit code, same as it does if no test cases have run. This behaviour can | ||||||
|  | be overridden using the [--allow-running-no-tests](command-line.md#no-tests-override) | ||||||
|  | flag. | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Passing and failing test cases | ## Passing and failing test cases | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský