-
Notifications
You must be signed in to change notification settings - Fork 12
/
tagging-tests.md
73 lines (53 loc) · 1.85 KB
/
tagging-tests.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---
title: Tagging Tests
---
{::options parse_block_html="true" /}
<div class="alert alert-info" role="alert">
#### Note
Tagging tests only works with Maven Surefire/Failsafe integration at the moment.
</div>
## Tagging a Single Test
Want to run just a sub-set of your tests? No problem. Simply decorate your tests with one or more tags:
```java
with(tags("smoke", "fast")).
it("returns -1", () -> {
// ...
});
```
Tags can be specified when running Cuppa via Maven using the `tags` property.
For example, to run only the tests with the tag `smoke`:
```bash
mvn -Dtags=smoke test
```
Alternatively you can run all tests which __are not__ tagged with one or more specific tags.
For example, to run all tests except tests tagged with `slow`:
```bash
mvn -DexcludedTags=slow test
```
If you want more flexibility you can use an expression.
For example, to run all the tests with `fast` tag or with `smoke` and `ui` tags excluding all `slow` tags :
```bash
mvn -DgroupsExpression="and(or(fast,and(smoke,ui)),not(slow))"
```
<div class="alert alert-info" role="alert">
#### Note
When running with a combination of TestNG or JUnit along side Cuppa, you can use the TestNG/JUnit way of
specifying/excluding groups so that you can run a sub-set of tests across both TestNG/JUnit and Cuppa.
It's important to note that you cannot use `-Dgroups=` and `-Dtags=`, `-DexcludedGroups=` and `-DexcludedTags=`
or `-DgroupsExpression` and `-DtagsExpression` at the same time.
</div>
<div class="alert alert-info" role="alert">
#### Note 2
It's important to note that you cannot if you use the expression you cannot use tags/groups or
excludedTags/excludedGroups
</div>
## Tagging a Block of Tests
Similarly you can tag all tests within a `describe` or `when` block:
```java
with(tags("smoke")).
when("it is empty", () -> {
it("returns -1", () -> {
// ...
});
});
```