Skip to main content

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.

Cycles

Tip: Consider associating GitHub milestone with your cycle 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:
- "/"
```