Cycles
When testing a release
the test execution, and status tracking, can be organized into cycles
. A cycle
is defined as a subset of test specs contained within a branch.
A
cycle
is defined as a subset of the test specs contained within a branch.
A test session can be created in a cycle
.
A cycle's status is maintained within Testspace, but suites are still aggregated all together in the results listings. Cycles are accessed by the Cycles
button in the right corner of the Manual view.
Tip
: Consider associating GitHub milestone with yourcycle
issue for better tracking
Configuration
To create a cycle
a GitHub issue is used. Simply create an issue in your GitHub repo and place a special metadata block code (i.e. surrounded by 3 backticks) at the bottom of its description:
```
testspace:
branch: "release-X"
```
The name of the issue and the cycle's name can be changed at any time.
To complete a cycle
simply close the GitHub issue that defines it.
The full cycle
metadata configuration format is:
```
testspace:
branch: "branch-1" # required "release" branch name
specs: # optional one or more relative to the .testspace.yml "path" property
- path: "/yml-rel-path/to/folder"
ignore: "**/x*" # optional one or more git-ignore wildcard patterns
- path: "/yml-rel-path/to/file.md"
```
branch
The branch
represents the "release branch", and the corresponding space, for the cycle
.
```
testspace:
branch: "release_abc"
```
specs path
The specs path
represents one or more paths relative to the "path" defined in the .testspace.yml
configuration file and can be used to point to folders and/or files.
```
testspace:
specs:
path: "folder1"
```
Referencing specific files to include.
```
testspace:
specs:
- path: "folder1/file1.md"
- path: "folder1/file2.md"
```
specs ignore
The specs ignore
represents excluding specific specs and/or directories from being included. The .gitignore
wildcard pattern is supported.
```
testspace:
specs:
ignore:
- "folder2"
- "*other/*
```
Examples
The following examples are based on the following directory structure:
root
├── README.md
├── .testspace.yml
└── specs
├── example.md
├── spec2.md
├── spec3.md
├── featureABC
│ ├── another-spec.md
│ ├── yet-another-spec.md
└── featureXYZ
└── important-spec.md
Separate folder
Using folders to represent different functional groups to be captured in cycles. The default path for specs
is assumed.
Creating 2 cycles, each representing a folder:
Cycle "ABC"
```
testspace:
specs:
path: "featureABC"
```
Cycle "XYZ"
```
testspace:
specs:
path: "featureXYZ"
```
Subset of files
This example includes specific files to represent the cycle. The default path for specs
is assumed.
Cycle "OnlyABC"
```
testspace:
specs:
- path: "featureABC/testA.md"
- path: "featureABC/testB.md"
- path: "featureABC/testC.md"
```
Ignoring
This example ignores the folders and 1 specific file.
```
testspace:
specs:
ignore:
- "featureABC"
- "featureXYZ"
- "spec3.md"
```
Ignores all subfolders.
```
testspace:
specs:
ignore:
- "/"
```