File: Traits.md

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (65 lines) | stat: -rw-r--r-- 1,543 bytes parent folder | download
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
# Traits

<!--
This source file is part of the Swift.org open source project

Copyright (c) 2023–2024 Apple Inc. and the Swift project authors
Licensed under Apache License v2.0 with Runtime Library Exception

See https://swift.org/LICENSE.txt for license information
See https://swift.org/CONTRIBUTORS.txt for Swift project authors
-->

Add traits to tests to annotate them or customize their behavior.

## Overview

Pass built-in traits to test functions or suite types to comment, categorize, 
classify, and modify runtime behaviors. You can also use the ``Trait``, ``TestTrait``, 
and ``SuiteTrait`` protocols to create your own types that customize the 
behavior of test functions.

## Topics

### Customizing runtime behaviors

- <doc:EnablingAndDisabling>
- <doc:LimitingExecutionTime>
- ``Trait/enabled(if:_:sourceLocation:)``
- ``Trait/enabled(_:sourceLocation:_:)``
- ``Trait/disabled(_:sourceLocation:)``
- ``Trait/disabled(if:_:sourceLocation:)``
- ``Trait/disabled(_:sourceLocation:_:)``
- ``Trait/timeLimit(_:)``

### Running tests serially or in parallel

- <doc:Parallelization>
- ``Trait/serialized``

### Annotating tests

- <doc:AddingTags>
- <doc:AddingComments>
- <doc:AssociatingBugs>
- <doc:BugIdentifiers>
- ``Tag()``
- ``Trait/bug(_:_:)``
- ``Trait/bug(_:id:_:)-10yf5``
- ``Trait/bug(_:id:_:)-3vtpl``

### Creating custom traits

- ``Trait``
- ``TestTrait``
- ``SuiteTrait``

### Supporting types

- ``Bug``
- ``Comment``
- ``ConditionTrait``
- ``ParallelizationTrait``
- ``Tag``
- ``Tag/List``
- ``TimeLimitTrait``