Skip to content

Latest commit

 

History

History
4089 lines (2600 loc) · 84.9 KB

File metadata and controls

4089 lines (2600 loc) · 84.9 KB

robot.toml configuration settings

[profile].description

Type: str | None

Description of the profile.

[profile].detached

Type: bool | None

The profile should be detached. Detached means it is not inherited from the main profile.

[profile].enabled

Type: bool | Condition | None

If enabled the profile is used. You can also use and if condition to calculate the enabled state.

Examples:

# always disabled
enabled = false
# enabled if TEST_VAR is set
enabled = { if = 'environ.get("CI") == "true"' }

[profile].hidden

Type: bool | Condition | None

The profile should be hidden. Hidden means it is not shown in the list of available profiles.

Examples:

hidden = true
hidden = { if = 'environ.get("CI") == "true"' }

[profile].inherits

Type: str | StringExpression | list[str | StringExpression] | None

Profiles to inherit from.

Examples:

inherits = ["default", "Firefox"]

[profile].precedence

Type: int | None

Precedence of the profile. Lower values are executed first. If not set the order is undefined.

args

Type: list[str] | None

Arguments to be passed to robot.

Examples:

args = ["-t", "abc"]

console

Type: Literal['verbose', 'dotted', 'skipped', 'quiet', 'none'] | None

How to report execution on the console.

verbose: report every suite and test (default)

dotted: only show . for passed test, s for skipped tests, and F for failed tests

quiet: no output except for errors and warnings

none: no output whatsoever

Examples:

console = "dotted"

corresponds to the --console type option of robot

console-colors

Type: Literal['auto', 'on', 'ansi', 'off'] | None

Use colors on console output or not.

auto: use colors when output not redirected (default)

on: always use colors

ansi: like on but use ANSI colors also on Windows

off: disable colors altogether

Examples:

console-colors = "on"

corresponds to the -C --consolecolors auto|on|ansi|off option of robot

console-links

Type: Literal['auto', 'off'] | None

Control making paths to results files hyperlinks.

auto: use links when colors are enabled (default)

off: disable links unconditionally

Examples:

console-links = "off"

corresponds to the --consolelinks auto|off option of robot

console-markers

Type: Literal['auto', 'on', 'off'] | None

Show markers on the console when top level keywords in a test case end. Values have same semantics as with --consolecolors.

Examples:

console-markers = "off"

corresponds to the -K --consolemarkers auto|on|off option of robot

console-width

Type: int | None

Width of the console output. Default is 78.

Examples:

console-width = 100

corresponds to the -W --consolewidth chars option of robot

debug-file

Type: str | StringExpression | None

Debug file written during execution. Not created unless this option is specified.

Examples:

debug-file = "debug.log"

corresponds to the -b --debugfile file option of robot

default-profiles

Type: str | list[str] | None

Selects the Default profile if no profile is given at command line.

Examples:

default-profiles = "default"
default-profiles = ["default", "Firefox"]

doc

Type: str | StringExpression | None

Set the documentation of the top level suite. Simple formatting is supported (e.g. bold). If the documentation contains spaces, it must be quoted. If the value is path to an existing file, actual documentation is read from that file.

Examples:

doc = "Very *good* example"
# read documentation from a file
doc = "doc_from_file.txt"

corresponds to the -D --doc documentation option of robot

dotted

Type: bool | Flag | None

Shortcut for --console dotted.

Examples:

dotted = true

corresponds to the -. --dotted option of robot

dry-run

Type: bool | Flag | None

Verifies test data and runs tests so that library keywords are not executed.

Examples:

dry-run = true

corresponds to the --dryrun option of robot

env

Type: dict[str, str | StringExpression] | None

Define environment variables to be set before running tests.

Examples:

[env]
TEST_VAR = "test"
SECRET = "password"

excludes

Type: list[str | StringExpression] | None

Select test cases not to run by tag. These tests are not run even if included with --include. Tags are matched using same rules as with --include.

Examples:

excludes = ["smoke", "wip*"]

corresponds to the -e --exclude tag * option of robot

exit-on-error

Type: bool | Flag | None

Stops test execution if any error occurs when parsing test data, importing libraries, and so on.

Examples:

exit-on-error = true

corresponds to the --exitonerror option of robot

exit-on-failure

Type: bool | Flag | None

Stops test execution if any test fails.

Examples:

exit-on-failure = true

corresponds to the -X --exitonfailure option of robot

expand-keywords

Type: list[str | NamePattern | TagPattern] | None

Matching keywords will be automatically expanded in the log file. Matching against keyword name or tags work using same rules as with --removekeywords.

Examples:

expand-keywords = ["name:BuiltIn.Log", "tag:expand"]

corresponds to the --expandkeywords name:<pattern>|tag:<pattern> * option of robot

extend-args

Type: list[str] | None

Append extra arguments to be passed to robot.

Examples:

extend-args = ["-t", "abc"]

extend-env

Type: dict[str, str | StringExpression] | None

Append extra environment variables to be set before run.

Examples:

[extend-env]
EXTRA_VAR = "value"

extend-excludes

Type: list[str | StringExpression] | None

Appends entries to the --exclude option.

Select test cases not to run by tag. These tests are not run even if included with --include. Tags are matched using same rules as with --include.

Examples:

extend-excludes = ["smoke", "wip*"]

corresponds to the -e --exclude tag * option of robot

extend-expand-keywords

Type: list[str | NamePattern | TagPattern] | None

Appends entries to the --expandkeywords option.

Matching keywords will be automatically expanded in the log file. Matching against keyword name or tags work using same rules as with --removekeywords.

Examples:

extend-expand-keywords = ["name:BuiltIn.Log", "tag:expand"]

corresponds to the --expandkeywords name:<pattern>|tag:<pattern> * option of robot

extend-flatten-keywords

Type: list[str | Literal['for', 'while', 'iteration'] | NamePattern | TagPattern] | None

Appends entries to the --flattenkeywords option.

Flattens matching keywords in the generated log file. Matching keywords get all log messages from their child keywords and children are discarded otherwise.

for: flatten FOR loops fully

while: flatten WHILE loops fully

iteration: flatten FOR/WHILE loop iterations

foritem: deprecated alias for iteration

name:<pattern>: flatten matched keywords using same matching rules as with --removekeywords name:<pattern>

tag:<pattern>: flatten matched keywords using same matching rules as with --removekeywords tag:<pattern>

Examples:

extend-flatten-keywords = ["for", "name:Lib.HugeKw", "tag:flatten"]

corresponds to the --flattenkeywords for|while|iteration|name:<pattern>|tag:<pattern> * option of robot

extend-includes

Type: list[str | StringExpression] | None

Appends entries to the --include option.

Select tests by tag. Similarly as name with --test, tag is case and space insensitive and it is possible to use patterns with *, ? and [] as wildcards. Tags and patterns can also be combined together with AND, OR, and NOT operators.

Examples:

# match tests tagged "foo" or "bar*"
extend-includes = ["foo", "bar*"]
# tests with both "foo" and "bar*" tags
extend-includes = ["fooANDbar*"]

corresponds to the -i --include tag * option of robot

extend-languages

Type: list[str | StringExpression] | None

Appends entries to the --language option.

Activate localization. lang can be a name or a code of a built-in language, or a path or a module name of a custom language file.

Examples:

extend-languages = ["German", "Finnish"]

corresponds to the --language lang * option of rebot

extend-listeners

Type: dict[str, list[str | StringExpression]] | None

Appends entries to the --listener option.

Class or module for monitoring test execution. Gets notifications e.g. when tests start and end. Arguments to the listener class can be given after the name using a colon or a semicolon as a separator.

Examples:

[extend-listeners]
MyListener = []
"path/to/Listener.py" = ["arg1", "arg2"]

corresponds to the --listener listener * option of rebot

extend-metadata

Type: dict[str, str | StringExpression] | None

Appends entries to the --metadata option.

Set metadata of the top level suite. Value can contain formatting and be read from a file similarly as --doc. Example: --metadata Version:1.2

Examples:

[extend-metadata]
Version = "1.2"
# value can be read from a file (same rules as --doc)
ReleaseNotes = "release_notes.txt"

corresponds to the -M --metadata name:value * option of robot

extend-parse-include

Type: list[str | StringExpression] | None

Appends entries to the --parseinclude option.

Parse only files matching pattern. It can be:

  • a file name or pattern like example.robot or *.robot to parse all files matching that name,
  • a file path like path/to/example.robot, or
  • a directory path like path/to/example to parse all files in that directory, recursively.

Examples:

extend-parse-include = ["*.robot", "tests/**/*.robot"]

corresponds to the -I --parseinclude pattern * option of robot

extend-parsers

Type: dict[str, list[str | StringExpression]] | None

Appends entries to the --parser option.

Custom parser class or module. Parser classes accept arguments the same way as with --listener.

Examples:

[extend-parsers]
MyParser = []
"path/to/MyParser.py" = ["arg1", "arg2"]

corresponds to the --parser parser * option of rebot

extend-paths

Type: str | list[str] | None

Append extra entries to the paths argument.

Examples:

extend-paths = ["tests"]

extend-pre-rebot-modifiers

Type: dict[str, list[str | StringExpression]] | None

Appends entries to the --prerebotmodifier option.

Class to programmatically modify the result model before creating reports and logs. Accepts arguments the same way as with --listener.

Examples:

[extend-pre-rebot-modifiers]
"path/to/Modifier.py" = ["arg1"]

corresponds to the --prerebotmodifier modifier * option of robot

extend-pre-run-modifiers

Type: dict[str, list[str | StringExpression]] | None

Appends entries to the --prerunmodifier option.

Class to programmatically modify the suite structure before execution. Accepts arguments the same way as with --listener.

Examples:

[extend-pre-run-modifiers]
MyModifier = []
"path/to/Modifier.py" = ["arg1"]

corresponds to the --prerunmodifier modifier * option of rebot

extend-profiles

Type: dict[str, RobotProfile] | None

Extra execution profiles.

extend-python-path

Type: list[str | StringExpression] | None

Appends entries to the --pythonpath option.

Additional locations (directories, ZIPs) where to search libraries and other extensions when they are imported. Multiple paths can be given by separating them with a colon (:) or by using this option several times. Given path can also be a glob pattern matching multiple paths.

Examples:

extend-python-path = ["libs/", "/opt/libs", "libraries.zip"]

corresponds to the -P --pythonpath path * option of robot

extend-remove-keywords

Type: list[str | Literal['all', 'passed', 'for', 'wuks'] | NamePattern | TagPattern] | None

Appends entries to the --removekeywords option.

Remove keyword data from the generated log file. Keywords containing warnings are not removed except in the all mode.

all: remove data from all keywords

passed: remove data only from keywords in passed test cases and suites

for: remove passed iterations from FOR loops

while: remove passed iterations from WHILE loops

wuks: remove all but the last failing keyword inside BuiltIn.Wait Until Keyword Succeeds

name:<pattern>: remove data from keywords that match the given pattern. The pattern is matched against the full name of the keyword (e.g. 'MyLib.Keyword', 'resource.Second Keyword'), is case, space, and underscore insensitive, and may contain *, ? and [] wildcards.

tag:<pattern>: remove data from keywords that match the given pattern. Tags are case and space insensitive and patterns can contain *, ? and [] wildcards. Tags and patterns can also be combined together with AND, OR, and NOT operators.

Examples:

# match by keyword name
extend-remove-keywords = ["name:Lib.HugeKw", "name:myresource.*"]
# match by tag pattern (same rules as --include)
extend-remove-keywords = ["foo", "fooANDbar*"]

corresponds to the --removekeywords all|passed|for|wuks|name:<pattern>|tag:<pattern> * option of robot

extend-set-tag

Type: list[str | StringExpression] | None

Appends entries to the --settag option.

Sets given tag(s) to all executed tests.

Examples:

extend-set-tag = ["my-suite-tag", "ci"]

corresponds to the -G --settag tag * option of robot

extend-skip

Type: list[str | StringExpression] | None

Appends entries to the --skip option.

Tests having given tag will be skipped. Tag can be a pattern.

Examples:

extend-skip = ["bug-*", "wip"]

corresponds to the --skip tag * option of rebot

extend-skip-on-failure

Type: list[str | StringExpression] | None

Appends entries to the --skiponfailure option.

Tests having given tag will be skipped if they fail. Tag can be a pattern

Examples:

extend-skip-on-failure = ["unstable"]

corresponds to the --skiponfailure tag * option of rebot

extend-suites

Type: list[str | StringExpression] | None

Appends entries to the --suite option.

Select suites by name. When this option is used with --test, --include or --exclude, only tests in matching suites and also matching other filtering criteria are selected. Name can be a simple pattern similarly as with --test and it can contain parent name separated with a dot. For example, -s X.Y selects suite Y only if its parent is X.

Examples:

# match a suite by name or by parent.child path
extend-suites = ["MySuite", "Tests.SubSuite"]

corresponds to the -s --suite name * option of robot

extend-tag-doc

Type: dict[str, str | StringExpression] | None

Appends entries to the --tagdoc option.

Add documentation to tags matching the given pattern. Documentation is shown in Test Details and also as a tooltip in Statistics by Tag. Pattern can use *, ? and [] as wildcards like --test.

Examples:

[extend-tag-doc]
mytag = "Example"
"owner-*" = "Original author"

corresponds to the --tagdoc pattern:doc * option of robot

extend-tag-stat-combine

Type: list[str | dict[str, str]] | None

Appends entries to the --tagstatcombine option.

Create combined statistics based on tags. These statistics are added into Statistics by Tag. If the optional name is not given, name of the combined tag is got from the specified tags. Tags are matched using the same rules as with --include.

Examples:

extend-tag-stat-combine = ["requirement-*", { "tag1ANDtag2" = "My_name" }]

corresponds to the --tagstatcombine tags:name * option of robot

extend-tag-stat-exclude

Type: list[str | StringExpression] | None

Appends entries to the --tagstatexclude option.

Exclude matching tags from Statistics by Tag. This option can be used with --tagstatinclude similarly as --exclude is used with --include.

Examples:

extend-tag-stat-exclude = ["bug-*"]

corresponds to the --tagstatexclude tag * option of robot

extend-tag-stat-include

Type: list[str | StringExpression] | None

Appends entries to the --tagstatinclude option.

Include only matching tags in Statistics by Tag in log and report. By default all tags are shown. Given tag can be a pattern like with --include.

Examples:

extend-tag-stat-include = ["owner-*", "feature-*"]

corresponds to the --tagstatinclude tag * option of robot

extend-tag-stat-link

Type: dict[str, str | StringExpression] | None

Appends entries to the --tagstatlink option.

Add external links into Statistics by Tag. Pattern can use *, ? and [] as wildcards like --test. Characters matching to * and ? wildcards can be used in link and title with syntax %N, where N is index of the match (starting from 1).

Examples:

[extend-tag-stat-link]
mytag = "http://my.domain:Title"
"bug-*" = "http://url/id=%1:Issue Tracker"

corresponds to the --tagstatlink pattern:link:title * option of robot

extend-tasks

Type: list[str | StringExpression] | None

Appends entries to the --task option.

Alias to --test. Especially applicable with --rpa.

Examples:

extend-tasks = ["My Task", "Smoke*"]

corresponds to the --task name * option of robot

extend-tests

Type: list[str | StringExpression] | None

Appends entries to the --test option.

Select tests by name or by long name containing also parent suite name like Parent.Test. Name is case and space insensitive and it can also be a simple pattern where * matches anything, ? matches any single character, and [chars] matches one character in brackets.

Examples:

extend-tests = ["My Test", "Smoke*"]

corresponds to the -t --test name * option of robot

extend-variable-files

Type: list[str | StringExpression] | None

Appends entries to the --variablefile option.

Python or YAML file file to read variables from. Possible arguments to the variable file can be given after the path using colon or semicolon as separator.

Examples:

extend-variable-files = ["path/vars.yaml", "environment.py:testing"]

corresponds to the -V --variablefile path * option of rebot

extend-variables

Type: dict[str, str | StringExpression] | None

Appends entries to the --variable option.

Set variables in the test data. Only scalar variables with string value are supported and name is given without ${}. See --variablefile for a more powerful variable setting mechanism.

Examples:

# sets ${name} to "Robot"
[extend-variables]
name = "Robot"

corresponds to the -v --variable name:value * option of rebot

extensions

Type: str | StringExpression | None

Parse only files with this extension when executing a directory. Has no effect when running individual files or when using resource files. If more than one extension is needed, separate them with a colon.

Only *.robot files are parsed by default.

Examples:

extensions = "txt"
# parse multiple extensions (separator: colon)
extensions = "robot:txt"

corresponds to the -F --extension value option of robot

flatten-keywords

Type: list[str | Literal['for', 'while', 'iteration'] | NamePattern | TagPattern] | None

Flattens matching keywords in the generated log file. Matching keywords get all log messages from their child keywords and children are discarded otherwise.

for: flatten FOR loops fully

while: flatten WHILE loops fully

iteration: flatten FOR/WHILE loop iterations

foritem: deprecated alias for iteration

name:<pattern>: flatten matched keywords using same matching rules as with --removekeywords name:<pattern>

tag:<pattern>: flatten matched keywords using same matching rules as with --removekeywords tag:<pattern>

Examples:

flatten-keywords = ["for", "name:Lib.HugeKw", "tag:flatten"]

corresponds to the --flattenkeywords for|while|iteration|name:<pattern>|tag:<pattern> * option of robot

includes

Type: list[str | StringExpression] | None

Select tests by tag. Similarly as name with --test, tag is case and space insensitive and it is possible to use patterns with *, ? and [] as wildcards. Tags and patterns can also be combined together with AND, OR, and NOT operators.

Examples:

# match tests tagged "foo" or "bar*"
includes = ["foo", "bar*"]
# tests with both "foo" and "bar*" tags
includes = ["fooANDbar*"]

corresponds to the -i --include tag * option of robot

languages

Type: list[str | StringExpression] | None

Activate localization. lang can be a name or a code of a built-in language, or a path or a module name of a custom language file.

Examples:

languages = ["German", "Finnish"]

corresponds to the --language lang * option of robot

legacy-output

Type: bool | Flag | None

Create XML output file in format compatible with Robot Framework 6.x and earlier.

Examples:

legacy-output = true

corresponds to the --legacyoutput option of robot

libdoc

Type: LibDocProfile | None

Options to be passed to libdoc.

libdoc.doc-format

Type: Literal['ROBOT', 'HTML', 'TEXT', 'REST'] | None

Specifies the source documentation format. Possible values are Robot Framework's documentation format, HTML, plain text, and reStructuredText. The default value can be specified in library source code and the initial default value is ROBOT.

Examples:

doc-format = "REST"

corresponds to the -F --docformat ROBOT|HTML|TEXT|REST option of libdoc

libdoc.extend-python-path

Type: list[str | StringExpression] | None

Appends entries to the --pythonpath option.

Additional locations where to search for libraries and resources.

Examples:

extend-python-path = ["libs/", "/opt/libs", "libraries.zip"]

corresponds to the -P --pythonpath path * option of libdoc

libdoc.format

Type: Literal['HTML', 'XML', 'JSON', 'LIBSPEC'] | None

Specifies whether to generate an HTML output for humans or a machine readable spec file in XML or JSON format. The LIBSPEC format means XML spec with documentations converted to HTML. The default format is got from the output file extension.

Examples:

format = "HTML"

corresponds to the -f --format HTML|XML|JSON|LIBSPEC option of libdoc

libdoc.name

Type: str | StringExpression | None

Sets the name of the documented library or resource.

Examples:

name = "My Project"

corresponds to the -n --name name option of libdoc

libdoc.python-path

Type: list[str | StringExpression] | None

Additional locations where to search for libraries and resources.

Examples:

python-path = ["libs/", "/opt/libs", "libraries.zip"]

corresponds to the -P --pythonpath path * option of libdoc

libdoc.quiet

Type: bool | Flag | None

Do not print the path of the generated output file to the console.

Examples:

quiet = true

corresponds to the --quiet option of libdoc

libdoc.spec-doc-format

Type: Literal['RAW', 'HTML'] | None

Specifies the documentation format used with XML and JSON spec files. RAW means preserving the original documentation format and HTML means converting documentation to HTML. The default is RAW with XML spec files and HTML with JSON specs and when using the special LIBSPEC format.

Examples:

spec-doc-format = "HTML"

corresponds to the -s --specdocformat RAW|HTML option of libdoc

libdoc.theme

Type: Literal['DARK', 'LIGHT', 'NONE'] | None

Use dark or light HTML theme. If this option is not used, or the value is NONE, the theme is selected based on the browser color scheme. New in RF 6.0.

Examples:

theme = "DARK"

corresponds to the --theme DARK|LIGHT|NONE option of libdoc

listeners

Type: dict[str, list[str | StringExpression]] | None

Class or module for monitoring test execution. Gets notifications e.g. when tests start and end. Arguments to the listener class can be given after the name using a colon or a semicolon as a separator.

Examples:

[listeners]
MyListener = []
"path/to/Listener.py" = ["arg1", "arg2"]

corresponds to the --listener listener * option of robot

log

Type: str | StringExpression | None

HTML log file. Can be disabled by giving a special value NONE. Default: log.html

Examples:

log = "mylog.html"
# disable log file generation
log = "NONE"

corresponds to the -l --log file option of robot

log-level

Type: str | StringExpression | None

Threshold level for logging. Available levels: TRACE, DEBUG, INFO (default), WARN, NONE (no logging). Use syntax LOGLEVEL:DEFAULT to define the default visible log level in log files.

Examples:

log-level = "DEBUG"
# explicit visible level (default: INFO)
log-level = "DEBUG:INFO"

corresponds to the -L --loglevel level option of robot

log-title

Type: str | StringExpression | None

Title for the generated log file. The default title is <SuiteName> Log.

Examples:

log-title = "My Project Log"

corresponds to the --logtitle title option of robot

max-assign-length

Type: int | None

Maximum number of characters to show in log when variables are assigned. Zero or negative values can be used to avoid showing assigned values at all. Default is 200.

Examples:

max-assign-length = 200

corresponds to the --maxassignlength characters option of robot

max-error-lines

Type: int | None

Maximum number of error message lines to show in report when tests fail. Default is 40, minimum is 10 and NONE can be used to show the full message.

Examples:

max-error-lines = 40

corresponds to the --maxerrorlines lines option of robot

metadata

Type: dict[str, str | StringExpression] | None

Set metadata of the top level suite. Value can contain formatting and be read from a file similarly as --doc. Example: --metadata Version:1.2

Examples:

[metadata]
Version = "1.2"
# value can be read from a file (same rules as --doc)
ReleaseNotes = "release_notes.txt"

corresponds to the -M --metadata name:value * option of robot

name

Type: str | StringExpression | None

Set the name of the top level suite. By default the name is created based on the executed file or directory.

Examples:

name = "My Project"

corresponds to the -N --name name option of robot

no-status-rc

Type: bool | Flag | None

Sets the return code to zero regardless of failures in test cases. Error codes are returned normally.

Examples:

# always exit 0 regardless of failed tests
no-status-rc = true

corresponds to the --nostatusrc option of robot

output

Type: str | StringExpression | None

XML output file. Given path, similarly as paths given to --log, --report, --xunit, and --debugfile, is relative to --outputdir unless given as an absolute path. Other output files are created based on XML output files after the test execution and XML outputs can also be further processed with Rebot tool. Can be disabled by giving a special value NONE.

Default: output.xml

Examples:

output = "output.xml"

corresponds to the -o --output file option of robot

output-dir

Type: str | StringExpression | None

Where to create output files. The default is the directory where tests are run from and the given path is considered relative to that unless it is absolute.

Examples:

output-dir = "results"

corresponds to the -d --outputdir dir option of robot

parse-include

Type: list[str | StringExpression] | None

Parse only files matching pattern. It can be:

  • a file name or pattern like example.robot or *.robot to parse all files matching that name,
  • a file path like path/to/example.robot, or
  • a directory path like path/to/example to parse all files in that directory, recursively.

Examples:

parse-include = ["*.robot", "tests/**/*.robot"]

corresponds to the -I --parseinclude pattern * option of robot

parsers

Type: dict[str, list[str | StringExpression]] | None

Custom parser class or module. Parser classes accept arguments the same way as with --listener.

Examples:

[parsers]
MyParser = []
"path/to/MyParser.py" = ["arg1", "arg2"]

corresponds to the --parser parser * option of robot

paths

Type: str | list[str] | None

Specifies the paths where robot/robotcode should discover tests. If no paths are given at the command line this value is used.

Examples:

paths = ["tests"]

Corresponds to the paths argument of robot.

pre-rebot-modifiers

Type: dict[str, list[str | StringExpression]] | None

Class to programmatically modify the result model before creating reports and logs. Accepts arguments the same way as with --listener.

Examples:

[pre-rebot-modifiers]
"path/to/Modifier.py" = ["arg1"]

corresponds to the --prerebotmodifier modifier * option of robot

pre-run-modifiers

Type: dict[str, list[str | StringExpression]] | None

Class to programmatically modify the suite structure before execution. Accepts arguments the same way as with --listener.

Examples:

[pre-run-modifiers]
MyModifier = []
"path/to/Modifier.py" = ["arg1"]

corresponds to the --prerunmodifier modifier * option of robot

profiles

Type: dict[str, RobotProfile] | None

Execution profiles.

python-path

Type: list[str | StringExpression] | None

Additional locations (directories, ZIPs) where to search libraries and other extensions when they are imported. Multiple paths can be given by separating them with a colon (:) or by using this option several times. Given path can also be a glob pattern matching multiple paths.

Examples:

python-path = ["libs/", "/opt/libs", "libraries.zip"]

corresponds to the -P --pythonpath path * option of robot

quiet

Type: bool | Flag | None

Shortcut for --console quiet.

Examples:

quiet = true

corresponds to the --quiet option of robot

randomize

Type: str | Literal['all', 'suites', 'tests', 'none'] | None

Randomizes the test execution order.

all: randomizes both suites and tests

suites: randomizes suites

tests: randomizes tests

none: no randomization (default) Use syntax VALUE:SEED to give a custom random seed. The seed must be an integer.

Examples:

randomize = "all"
# randomize tests with a fixed seed
randomize = "tests:1234"

corresponds to the --randomize all|suites|tests|none option of robot

re-run-failed

Type: str | StringExpression | None

Select failed tests from an earlier output file to be re-executed. Equivalent to selecting same tests individually using --test.

Examples:

re-run-failed = "output.xml"

corresponds to the -R --rerunfailed output option of robot

re-run-failed-suites

Type: str | StringExpression | None

Select failed suites from an earlier output file to be re-executed.

Examples:

re-run-failed-suites = "output.xml"

corresponds to the -S --rerunfailedsuites output option of robot

rebot

Type: RebotProfile | None

Options to be passed to rebot.

rebot.console-colors

Type: Literal['auto', 'on', 'ansi', 'off'] | None

Use colors on console output or not.

auto: use colors when output not redirected (default)

on: always use colors

ansi: like on but use ANSI colors also on Windows

off: disable colors altogether

Examples:

console-colors = "on"

corresponds to the -C --consolecolors auto|on|ansi|off option of robot

rebot.console-links

Type: Literal['auto', 'off'] | None

Control making paths to results files hyperlinks.

auto: use links when colors are enabled (default)

off: disable links unconditionally

Examples:

console-links = "off"

corresponds to the --consolelinks auto|off option of robot

rebot.doc

Type: str | StringExpression | None

Set the documentation of the top level suite. Simple formatting is supported (e.g. bold). If the documentation contains spaces, it must be quoted. If the value is path to an existing file, actual documentation is read from that file.

Examples:

doc = "Very *good* example"
# read documentation from a file
doc = "doc_from_file.txt"

corresponds to the -D --doc documentation option of robot

rebot.end-time

Type: str | StringExpression | None

Same as --starttime but for end time. If both options are used, elapsed time of the suite is calculated based on them. For combined suites, it is otherwise calculated by adding elapsed times of the combined suites together.

Examples:

end-time = "2024-12-15 14:35:42.123"

corresponds to the --endtime timestamp option of rebot

rebot.excludes

Type: list[str | StringExpression] | None

Select test cases not to run by tag. These tests are not run even if included with --include. Tags are matched using same rules as with --include.

Examples:

excludes = ["smoke", "wip*"]

corresponds to the -e --exclude tag * option of robot

rebot.expand-keywords

Type: list[str | NamePattern | TagPattern] | None

Matching keywords will be automatically expanded in the log file. Matching against keyword name or tags work using same rules as with --removekeywords.

Examples:

expand-keywords = ["name:BuiltIn.Log", "tag:expand"]

corresponds to the --expandkeywords name:<pattern>|tag:<pattern> * option of robot

rebot.extend-excludes

Type: list[str | StringExpression] | None

Appends entries to the --exclude option.

Select test cases not to run by tag. These tests are not run even if included with --include. Tags are matched using same rules as with --include.

Examples:

extend-excludes = ["smoke", "wip*"]

corresponds to the -e --exclude tag * option of robot

rebot.extend-expand-keywords

Type: list[str | NamePattern | TagPattern] | None

Appends entries to the --expandkeywords option.

Matching keywords will be automatically expanded in the log file. Matching against keyword name or tags work using same rules as with --removekeywords.

Examples:

extend-expand-keywords = ["name:BuiltIn.Log", "tag:expand"]

corresponds to the --expandkeywords name:<pattern>|tag:<pattern> * option of robot

rebot.extend-flatten-keywords

Type: list[str | Literal['for', 'while', 'iteration'] | NamePattern | TagPattern] | None

Appends entries to the --flattenkeywords option.

Flattens matching keywords in the generated log file. Matching keywords get all log messages from their child keywords and children are discarded otherwise.

for: flatten FOR loops fully

while: flatten WHILE loops fully

iteration: flatten FOR/WHILE loop iterations

foritem: deprecated alias for iteration

name:<pattern>: flatten matched keywords using same matching rules as with --removekeywords name:<pattern>

tag:<pattern>: flatten matched keywords using same matching rules as with --removekeywords tag:<pattern>

Examples:

extend-flatten-keywords = ["for", "name:Lib.HugeKw", "tag:flatten"]

corresponds to the --flattenkeywords for|while|iteration|name:<pattern>|tag:<pattern> * option of robot

rebot.extend-includes

Type: list[str | StringExpression] | None

Appends entries to the --include option.

Select tests by tag. Similarly as name with --test, tag is case and space insensitive and it is possible to use patterns with *, ? and [] as wildcards. Tags and patterns can also be combined together with AND, OR, and NOT operators.

Examples:

# match tests tagged "foo" or "bar*"
extend-includes = ["foo", "bar*"]
# tests with both "foo" and "bar*" tags
extend-includes = ["fooANDbar*"]

corresponds to the -i --include tag * option of robot

rebot.extend-metadata

Type: dict[str, str | StringExpression] | None

Appends entries to the --metadata option.

Set metadata of the top level suite. Value can contain formatting and be read from a file similarly as --doc. Example: --metadata Version:1.2

Examples:

[extend-metadata]
Version = "1.2"
# value can be read from a file (same rules as --doc)
ReleaseNotes = "release_notes.txt"

corresponds to the -M --metadata name:value * option of robot

rebot.extend-parse-include

Type: list[str | StringExpression] | None

Appends entries to the --parseinclude option.

Parse only files matching pattern. It can be:

  • a file name or pattern like example.robot or *.robot to parse all files matching that name,
  • a file path like path/to/example.robot, or
  • a directory path like path/to/example to parse all files in that directory, recursively.

Examples:

extend-parse-include = ["*.robot", "tests/**/*.robot"]

corresponds to the -I --parseinclude pattern * option of robot

rebot.extend-pre-rebot-modifiers

Type: dict[str, list[str | StringExpression]] | None

Appends entries to the --prerebotmodifier option.

Class to programmatically modify the result model before creating reports and logs. Accepts arguments the same way as with --listener.

Examples:

[extend-pre-rebot-modifiers]
"path/to/Modifier.py" = ["arg1"]

corresponds to the --prerebotmodifier modifier * option of robot

rebot.extend-python-path

Type: list[str | StringExpression] | None

Appends entries to the --pythonpath option.

Additional locations (directories, ZIPs) where to search libraries and other extensions when they are imported. Multiple paths can be given by separating them with a colon (:) or by using this option several times. Given path can also be a glob pattern matching multiple paths.

Examples:

extend-python-path = ["libs/", "/opt/libs", "libraries.zip"]

corresponds to the -P --pythonpath path * option of robot

rebot.extend-remove-keywords

Type: list[str | Literal['all', 'passed', 'for', 'wuks'] | NamePattern | TagPattern] | None

Appends entries to the --removekeywords option.

Remove keyword data from the generated log file. Keywords containing warnings are not removed except in the all mode.

all: remove data from all keywords

passed: remove data only from keywords in passed test cases and suites

for: remove passed iterations from FOR loops

while: remove passed iterations from WHILE loops

wuks: remove all but the last failing keyword inside BuiltIn.Wait Until Keyword Succeeds

name:<pattern>: remove data from keywords that match the given pattern. The pattern is matched against the full name of the keyword (e.g. 'MyLib.Keyword', 'resource.Second Keyword'), is case, space, and underscore insensitive, and may contain *, ? and [] wildcards.

tag:<pattern>: remove data from keywords that match the given pattern. Tags are case and space insensitive and patterns can contain *, ? and [] wildcards. Tags and patterns can also be combined together with AND, OR, and NOT operators.

Examples:

# match by keyword name
extend-remove-keywords = ["name:Lib.HugeKw", "name:myresource.*"]
# match by tag pattern (same rules as --include)
extend-remove-keywords = ["foo", "fooANDbar*"]

corresponds to the --removekeywords all|passed|for|wuks|name:<pattern>|tag:<pattern> * option of robot

rebot.extend-set-tag

Type: list[str | StringExpression] | None

Appends entries to the --settag option.

Sets given tag(s) to all executed tests.

Examples:

extend-set-tag = ["my-suite-tag", "ci"]

corresponds to the -G --settag tag * option of robot

rebot.extend-suites

Type: list[str | StringExpression] | None

Appends entries to the --suite option.

Select suites by name. When this option is used with --test, --include or --exclude, only tests in matching suites and also matching other filtering criteria are selected. Name can be a simple pattern similarly as with --test and it can contain parent name separated with a dot. For example, -s X.Y selects suite Y only if its parent is X.

Examples:

# match a suite by name or by parent.child path
extend-suites = ["MySuite", "Tests.SubSuite"]

corresponds to the -s --suite name * option of robot

rebot.extend-tag-doc

Type: dict[str, str | StringExpression] | None

Appends entries to the --tagdoc option.

Add documentation to tags matching the given pattern. Documentation is shown in Test Details and also as a tooltip in Statistics by Tag. Pattern can use *, ? and [] as wildcards like --test.

Examples:

[extend-tag-doc]
mytag = "Example"
"owner-*" = "Original author"

corresponds to the --tagdoc pattern:doc * option of robot

rebot.extend-tag-stat-combine

Type: list[str | dict[str, str]] | None

Appends entries to the --tagstatcombine option.

Create combined statistics based on tags. These statistics are added into Statistics by Tag. If the optional name is not given, name of the combined tag is got from the specified tags. Tags are matched using the same rules as with --include.

Examples:

extend-tag-stat-combine = ["requirement-*", { "tag1ANDtag2" = "My_name" }]

corresponds to the --tagstatcombine tags:name * option of robot

rebot.extend-tag-stat-exclude

Type: list[str | StringExpression] | None

Appends entries to the --tagstatexclude option.

Exclude matching tags from Statistics by Tag. This option can be used with --tagstatinclude similarly as --exclude is used with --include.

Examples:

extend-tag-stat-exclude = ["bug-*"]

corresponds to the --tagstatexclude tag * option of robot

rebot.extend-tag-stat-include

Type: list[str | StringExpression] | None

Appends entries to the --tagstatinclude option.

Include only matching tags in Statistics by Tag in log and report. By default all tags are shown. Given tag can be a pattern like with --include.

Examples:

extend-tag-stat-include = ["owner-*", "feature-*"]

corresponds to the --tagstatinclude tag * option of robot

rebot.extend-tag-stat-link

Type: dict[str, str | StringExpression] | None

Appends entries to the --tagstatlink option.

Add external links into Statistics by Tag. Pattern can use *, ? and [] as wildcards like --test. Characters matching to * and ? wildcards can be used in link and title with syntax %N, where N is index of the match (starting from 1).

Examples:

[extend-tag-stat-link]
mytag = "http://my.domain:Title"
"bug-*" = "http://url/id=%1:Issue Tracker"

corresponds to the --tagstatlink pattern:link:title * option of robot

rebot.extend-tasks

Type: list[str | StringExpression] | None

Appends entries to the --task option.

Alias to --test. Especially applicable with --rpa.

Examples:

extend-tasks = ["My Task", "Smoke*"]

corresponds to the --task name * option of robot

rebot.extend-tests

Type: list[str | StringExpression] | None

Appends entries to the --test option.

Select tests by name or by long name containing also parent suite name like Parent.Test. Name is case and space insensitive and it can also be a simple pattern where * matches anything, ? matches any single character, and [chars] matches one character in brackets.

Examples:

extend-tests = ["My Test", "Smoke*"]

corresponds to the -t --test name * option of robot

rebot.flatten-keywords

Type: list[str | Literal['for', 'while', 'iteration'] | NamePattern | TagPattern] | None

Flattens matching keywords in the generated log file. Matching keywords get all log messages from their child keywords and children are discarded otherwise.

for: flatten FOR loops fully

while: flatten WHILE loops fully

iteration: flatten FOR/WHILE loop iterations

foritem: deprecated alias for iteration

name:<pattern>: flatten matched keywords using same matching rules as with --removekeywords name:<pattern>

tag:<pattern>: flatten matched keywords using same matching rules as with --removekeywords tag:<pattern>

Examples:

flatten-keywords = ["for", "name:Lib.HugeKw", "tag:flatten"]

corresponds to the --flattenkeywords for|while|iteration|name:<pattern>|tag:<pattern> * option of robot

rebot.includes

Type: list[str | StringExpression] | None

Select tests by tag. Similarly as name with --test, tag is case and space insensitive and it is possible to use patterns with *, ? and [] as wildcards. Tags and patterns can also be combined together with AND, OR, and NOT operators.

Examples:

# match tests tagged "foo" or "bar*"
includes = ["foo", "bar*"]
# tests with both "foo" and "bar*" tags
includes = ["fooANDbar*"]

corresponds to the -i --include tag * option of robot

rebot.legacy-output

Type: bool | Flag | None

Create XML output file in format compatible with Robot Framework 6.x and earlier.

Examples:

legacy-output = true

corresponds to the --legacyoutput option of robot

rebot.log

Type: str | StringExpression | None

HTML log file. Can be disabled by giving a special value NONE. Default: log.html

Examples:

log = "mylog.html"
# disable log file generation
log = "NONE"

corresponds to the -l --log file option of robot

rebot.log-level

Type: str | StringExpression | None

Threshold for selecting messages. Available levels: TRACE (default), DEBUG, INFO, WARN, NONE (no msgs). Use syntax LOGLEVEL:DEFAULT to define the default visible log level in log files.

Examples:

log-level = "DEBUG"
# explicit visible level (default: INFO)
log-level = "DEBUG:INFO"

corresponds to the -L --loglevel level option of rebot

rebot.log-title

Type: str | StringExpression | None

Title for the generated log file. The default title is <SuiteName> Log.

Examples:

log-title = "My Project Log"

corresponds to the --logtitle title option of robot

rebot.merge

Type: bool | Flag | None

When combining results, merge outputs together instead of putting them under a new top level suite.

Example: rebot --merge orig.xml rerun.xml

Examples:

merge = true

corresponds to the -R --merge option of rebot

rebot.metadata

Type: dict[str, str | StringExpression] | None

Set metadata of the top level suite. Value can contain formatting and be read from a file similarly as --doc. Example: --metadata Version:1.2

Examples:

[metadata]
Version = "1.2"
# value can be read from a file (same rules as --doc)
ReleaseNotes = "release_notes.txt"

corresponds to the -M --metadata name:value * option of robot

rebot.name

Type: str | StringExpression | None

Set the name of the top level suite. By default the name is created based on the executed file or directory.

Examples:

name = "My Project"

corresponds to the -N --name name option of robot

rebot.no-status-rc

Type: bool | Flag | None

Sets the return code to zero regardless of failures in test cases. Error codes are returned normally.

Examples:

# always exit 0 regardless of failed tests
no-status-rc = true

corresponds to the --nostatusrc option of robot

rebot.output

Type: str | StringExpression | None

XML output file. Not created unless this option is specified. Given path, similarly as paths given to --log, --report and --xunit, is relative to --outputdir unless given as an absolute path.

Examples:

output = "output.xml"

corresponds to the -o --output file option of rebot

rebot.output-dir

Type: str | StringExpression | None

Where to create output files. The default is the directory where tests are run from and the given path is considered relative to that unless it is absolute.

Examples:

output-dir = "results"

corresponds to the -d --outputdir dir option of robot

rebot.parse-include

Type: list[str | StringExpression] | None

Parse only files matching pattern. It can be:

  • a file name or pattern like example.robot or *.robot to parse all files matching that name,
  • a file path like path/to/example.robot, or
  • a directory path like path/to/example to parse all files in that directory, recursively.

Examples:

parse-include = ["*.robot", "tests/**/*.robot"]

corresponds to the -I --parseinclude pattern * option of robot

rebot.pre-rebot-modifiers

Type: dict[str, list[str | StringExpression]] | None

Class to programmatically modify the result model before creating reports and logs. Accepts arguments the same way as with --listener.

Examples:

[pre-rebot-modifiers]
"path/to/Modifier.py" = ["arg1"]

corresponds to the --prerebotmodifier modifier * option of robot

rebot.process-empty-suite

Type: bool | Flag | None

Processes output also if the top level suite is empty. Useful e.g. with --include/--exclude when it is not an error that there are no matches.

Examples:

process-empty-suite = true

corresponds to the --processemptysuite option of rebot

rebot.python-path

Type: list[str | StringExpression] | None

Additional locations (directories, ZIPs) where to search libraries and other extensions when they are imported. Multiple paths can be given by separating them with a colon (:) or by using this option several times. Given path can also be a glob pattern matching multiple paths.

Examples:

python-path = ["libs/", "/opt/libs", "libraries.zip"]

corresponds to the -P --pythonpath path * option of robot

rebot.remove-keywords

Type: list[str | Literal['all', 'passed', 'for', 'wuks'] | NamePattern | TagPattern] | None

Remove keyword data from the generated log file. Keywords containing warnings are not removed except in the all mode.

all: remove data from all keywords

passed: remove data only from keywords in passed test cases and suites

for: remove passed iterations from FOR loops

while: remove passed iterations from WHILE loops

wuks: remove all but the last failing keyword inside BuiltIn.Wait Until Keyword Succeeds

name:<pattern>: remove data from keywords that match the given pattern. The pattern is matched against the full name of the keyword (e.g. 'MyLib.Keyword', 'resource.Second Keyword'), is case, space, and underscore insensitive, and may contain *, ? and [] wildcards.

tag:<pattern>: remove data from keywords that match the given pattern. Tags are case and space insensitive and patterns can contain *, ? and [] wildcards. Tags and patterns can also be combined together with AND, OR, and NOT operators.

Examples:

# match by keyword name
remove-keywords = ["name:Lib.HugeKw", "name:myresource.*"]
# match by tag pattern (same rules as --include)
remove-keywords = ["foo", "fooANDbar*"]

corresponds to the --removekeywords all|passed|for|wuks|name:<pattern>|tag:<pattern> * option of robot

rebot.report

Type: str | StringExpression | None

HTML report file. Can be disabled with NONE similarly as --log. Default: report.html

Examples:

report = "report.html"

corresponds to the -r --report file option of robot

rebot.report-background

Type: str | StringExpression | None

Background colors to use in the report file. Given in format passed:failed:skipped where the :skipped part can be omitted. Both color names and codes work.

Examples:

# pass:fail:skip colours
report-background = "green:red:yellow"
# pass:fail (skip uses the fail colour)
report-background = "#00E:#E00"

corresponds to the --reportbackground colors option of robot

rebot.report-title

Type: str | StringExpression | None

Title for the generated report file. The default title is <SuiteName> Report.

Examples:

report-title = "My Project Report"

corresponds to the --reporttitle title option of robot

rebot.rpa

Type: bool | Flag | None

Turn on the generic automation mode. Mainly affects terminology so that "test" is replaced with "task" in logs and reports. By default the mode is got from test/task header in data files.

Examples:

rpa = true

corresponds to the --rpa option of robot

rebot.set-tag

Type: list[str | StringExpression] | None

Sets given tag(s) to all executed tests.

Examples:

set-tag = ["my-suite-tag", "ci"]

corresponds to the -G --settag tag * option of robot

rebot.split-log

Type: bool | Flag | None

Split the log file into smaller pieces that open in browsers transparently.

Examples:

split-log = true

corresponds to the --splitlog option of robot

rebot.start-time

Type: str | StringExpression | None

Set execution start time. Timestamp must be given in format 2007-10-01 15:12:42.268 where all separators are optional (e.g. 20071001151242268 is ok too) and parts from milliseconds to hours can be omitted if they are zero (e.g. 2007-10-01). This can be used to override start time of a single suite or to set start time for a combined suite, which would otherwise be N/A.

Examples:

start-time = "2024-12-15 14:30:00.000"

corresponds to the --starttime timestamp option of rebot

rebot.suite-stat-level

Type: int | None

How many levels to show in Statistics by Suite in log and report. By default all suite levels are shown. Example: --suitestatlevel 3

Examples:

suite-stat-level = 2

corresponds to the --suitestatlevel level option of robot

rebot.suites

Type: list[str | StringExpression] | None

Select suites by name. When this option is used with --test, --include or --exclude, only tests in matching suites and also matching other filtering criteria are selected. Name can be a simple pattern similarly as with --test and it can contain parent name separated with a dot. For example, -s X.Y selects suite Y only if its parent is X.

Examples:

# match a suite by name or by parent.child path
suites = ["MySuite", "Tests.SubSuite"]

corresponds to the -s --suite name * option of robot

rebot.tag-doc

Type: dict[str, str | StringExpression] | None

Add documentation to tags matching the given pattern. Documentation is shown in Test Details and also as a tooltip in Statistics by Tag. Pattern can use *, ? and [] as wildcards like --test.

Examples:

[tag-doc]
mytag = "Example"
"owner-*" = "Original author"

corresponds to the --tagdoc pattern:doc * option of robot

rebot.tag-stat-combine

Type: list[str | dict[str, str]] | None

Create combined statistics based on tags. These statistics are added into Statistics by Tag. If the optional name is not given, name of the combined tag is got from the specified tags. Tags are matched using the same rules as with --include.

Examples:

tag-stat-combine = ["requirement-*", { "tag1ANDtag2" = "My_name" }]

corresponds to the --tagstatcombine tags:name * option of robot

rebot.tag-stat-exclude

Type: list[str | StringExpression] | None

Exclude matching tags from Statistics by Tag. This option can be used with --tagstatinclude similarly as --exclude is used with --include.

Examples:

tag-stat-exclude = ["bug-*"]

corresponds to the --tagstatexclude tag * option of robot

rebot.tag-stat-include

Type: list[str | StringExpression] | None

Include only matching tags in Statistics by Tag in log and report. By default all tags are shown. Given tag can be a pattern like with --include.

Examples:

tag-stat-include = ["owner-*", "feature-*"]

corresponds to the --tagstatinclude tag * option of robot

rebot.tag-stat-link

Type: dict[str, str | StringExpression] | None

Add external links into Statistics by Tag. Pattern can use *, ? and [] as wildcards like --test. Characters matching to * and ? wildcards can be used in link and title with syntax %N, where N is index of the match (starting from 1).

Examples:

[tag-stat-link]
mytag = "http://my.domain:Title"
"bug-*" = "http://url/id=%1:Issue Tracker"

corresponds to the --tagstatlink pattern:link:title * option of robot

rebot.tasks

Type: list[str | StringExpression] | None

Alias to --test. Especially applicable with --rpa.

Examples:

tasks = ["My Task", "Smoke*"]

corresponds to the --task name * option of robot

rebot.tests

Type: list[str | StringExpression] | None

Select tests by name or by long name containing also parent suite name like Parent.Test. Name is case and space insensitive and it can also be a simple pattern where * matches anything, ? matches any single character, and [chars] matches one character in brackets.

Examples:

tests = ["My Test", "Smoke*"]

corresponds to the -t --test name * option of robot

rebot.timestamp-outputs

Type: bool | Flag | None

When this option is used, timestamp in a format YYYYMMDD-hhmmss is added to all generated output files between their basename and extension. For example -T -o output.xml -r report.html -l none creates files like output-20070503-154410.xml and report-20070503-154410.html.

Examples:

timestamp-outputs = true

corresponds to the -T --timestampoutputs option of robot

rebot.xunit

Type: str | StringExpression | None

xUnit compatible result file. Not created unless this option is specified.

Examples:

xunit = "xunit.xml"

corresponds to the -x --xunit file option of robot

remove-keywords

Type: list[str | Literal['all', 'passed', 'for', 'wuks'] | NamePattern | TagPattern] | None

Remove keyword data from the generated log file. Keywords containing warnings are not removed except in the all mode.

all: remove data from all keywords

passed: remove data only from keywords in passed test cases and suites

for: remove passed iterations from FOR loops

while: remove passed iterations from WHILE loops

wuks: remove all but the last failing keyword inside BuiltIn.Wait Until Keyword Succeeds

name:<pattern>: remove data from keywords that match the given pattern. The pattern is matched against the full name of the keyword (e.g. 'MyLib.Keyword', 'resource.Second Keyword'), is case, space, and underscore insensitive, and may contain *, ? and [] wildcards.

tag:<pattern>: remove data from keywords that match the given pattern. Tags are case and space insensitive and patterns can contain *, ? and [] wildcards. Tags and patterns can also be combined together with AND, OR, and NOT operators.

Examples:

# match by keyword name
remove-keywords = ["name:Lib.HugeKw", "name:myresource.*"]
# match by tag pattern (same rules as --include)
remove-keywords = ["foo", "fooANDbar*"]

corresponds to the --removekeywords all|passed|for|wuks|name:<pattern>|tag:<pattern> * option of robot

report

Type: str | StringExpression | None

HTML report file. Can be disabled with NONE similarly as --log. Default: report.html

Examples:

report = "report.html"

corresponds to the -r --report file option of robot

report-background

Type: str | StringExpression | None

Background colors to use in the report file. Given in format passed:failed:skipped where the :skipped part can be omitted. Both color names and codes work.

Examples:

# pass:fail:skip colours
report-background = "green:red:yellow"
# pass:fail (skip uses the fail colour)
report-background = "#00E:#E00"

corresponds to the --reportbackground colors option of robot

report-title

Type: str | StringExpression | None

Title for the generated report file. The default title is <SuiteName> Report.

Examples:

report-title = "My Project Report"

corresponds to the --reporttitle title option of robot

rpa

Type: bool | Flag | None

Turn on the generic automation mode. Mainly affects terminology so that "test" is replaced with "task" in logs and reports. By default the mode is got from test/task header in data files.

Examples:

rpa = true

corresponds to the --rpa option of robot

run-empty-suite

Type: bool | Flag | None

Executes suite even if it contains no tests. Useful e.g. with --include/--exclude when it is not an error that no test matches the condition.

Examples:

run-empty-suite = true

corresponds to the --runemptysuite option of robot

set-tag

Type: list[str | StringExpression] | None

Sets given tag(s) to all executed tests.

Examples:

set-tag = ["my-suite-tag", "ci"]

corresponds to the -G --settag tag * option of robot

skip

Type: list[str | StringExpression] | None

Tests having given tag will be skipped. Tag can be a pattern.

Examples:

skip = ["bug-*", "wip"]

corresponds to the --skip tag * option of robot

skip-on-failure

Type: list[str | StringExpression] | None

Tests having given tag will be skipped if they fail. Tag can be a pattern

Examples:

skip-on-failure = ["unstable"]

corresponds to the --skiponfailure tag * option of robot

skip-teardown-on-exit

Type: bool | Flag | None

Causes teardowns to be skipped if test execution is stopped prematurely.

Examples:

skip-teardown-on-exit = true

corresponds to the --skipteardownonexit option of robot

split-log

Type: bool | Flag | None

Split the log file into smaller pieces that open in browsers transparently.

Examples:

split-log = true

corresponds to the --splitlog option of robot

suite-stat-level

Type: int | None

How many levels to show in Statistics by Suite in log and report. By default all suite levels are shown. Example: --suitestatlevel 3

Examples:

suite-stat-level = 2

corresponds to the --suitestatlevel level option of robot

suites

Type: list[str | StringExpression] | None

Select suites by name. When this option is used with --test, --include or --exclude, only tests in matching suites and also matching other filtering criteria are selected. Name can be a simple pattern similarly as with --test and it can contain parent name separated with a dot. For example, -s X.Y selects suite Y only if its parent is X.

Examples:

# match a suite by name or by parent.child path
suites = ["MySuite", "Tests.SubSuite"]

corresponds to the -s --suite name * option of robot

tag-doc

Type: dict[str, str | StringExpression] | None

Add documentation to tags matching the given pattern. Documentation is shown in Test Details and also as a tooltip in Statistics by Tag. Pattern can use *, ? and [] as wildcards like --test.

Examples:

[tag-doc]
mytag = "Example"
"owner-*" = "Original author"

corresponds to the --tagdoc pattern:doc * option of robot

tag-stat-combine

Type: list[str | dict[str, str]] | None

Create combined statistics based on tags. These statistics are added into Statistics by Tag. If the optional name is not given, name of the combined tag is got from the specified tags. Tags are matched using the same rules as with --include.

Examples:

tag-stat-combine = ["requirement-*", { "tag1ANDtag2" = "My_name" }]

corresponds to the --tagstatcombine tags:name * option of robot

tag-stat-exclude

Type: list[str | StringExpression] | None

Exclude matching tags from Statistics by Tag. This option can be used with --tagstatinclude similarly as --exclude is used with --include.

Examples:

tag-stat-exclude = ["bug-*"]

corresponds to the --tagstatexclude tag * option of robot

tag-stat-include

Type: list[str | StringExpression] | None

Include only matching tags in Statistics by Tag in log and report. By default all tags are shown. Given tag can be a pattern like with --include.

Examples:

tag-stat-include = ["owner-*", "feature-*"]

corresponds to the --tagstatinclude tag * option of robot

tag-stat-link

Type: dict[str, str | StringExpression] | None

Add external links into Statistics by Tag. Pattern can use *, ? and [] as wildcards like --test. Characters matching to * and ? wildcards can be used in link and title with syntax %N, where N is index of the match (starting from 1).

Examples:

[tag-stat-link]
mytag = "http://my.domain:Title"
"bug-*" = "http://url/id=%1:Issue Tracker"

corresponds to the --tagstatlink pattern:link:title * option of robot

tasks

Type: list[str | StringExpression] | None

Alias to --test. Especially applicable with --rpa.

Examples:

tasks = ["My Task", "Smoke*"]

corresponds to the --task name * option of robot

testdoc

Type: TestDocProfile | None

Options to be passed to testdoc.

testdoc.doc

Type: str | StringExpression | None

Override the documentation of the top level suite.

Examples:

doc = "Very *good* example"
# read documentation from a file
doc = "doc_from_file.txt"

corresponds to the -D --doc document option of testdoc

testdoc.excludes

Type: list[str | StringExpression] | None

Exclude tests by tags.

Examples:

excludes = ["smoke", "wip*"]

corresponds to the -e --exclude tag * option of testdoc

testdoc.extend-excludes

Type: list[str | StringExpression] | None

Appends entries to the --exclude option.

Exclude tests by tags.

Examples:

extend-excludes = ["smoke", "wip*"]

corresponds to the -e --exclude tag * option of testdoc

testdoc.extend-includes

Type: list[str | StringExpression] | None

Appends entries to the --include option.

Include tests by tags.

Examples:

# match tests tagged "foo" or "bar*"
extend-includes = ["foo", "bar*"]
# tests with both "foo" and "bar*" tags
extend-includes = ["fooANDbar*"]

corresponds to the -i --include tag * option of testdoc

testdoc.extend-metadata

Type: dict[str, str | StringExpression] | None

Appends entries to the --metadata option.

Set/override metadata of the top level suite.

Examples:

[extend-metadata]
Version = "1.2"
# value can be read from a file (same rules as --doc)
ReleaseNotes = "release_notes.txt"

corresponds to the -M --metadata name:value * option of testdoc

testdoc.extend-set-tag

Type: list[str | StringExpression] | None

Appends entries to the --settag option.

Set given tag(s) to all test cases.

Examples:

extend-set-tag = ["my-suite-tag", "ci"]

corresponds to the -G --settag tag * option of testdoc

testdoc.extend-suites

Type: list[str | StringExpression] | None

Appends entries to the --suite option.

Include suites by name.

Examples:

# match a suite by name or by parent.child path
extend-suites = ["MySuite", "Tests.SubSuite"]

corresponds to the -s --suite name * option of testdoc

testdoc.extend-tests

Type: list[str | StringExpression] | None

Appends entries to the --test option.

Include tests by name.

Examples:

extend-tests = ["My Test", "Smoke*"]

corresponds to the -t --test name * option of testdoc

testdoc.includes

Type: list[str | StringExpression] | None

Include tests by tags.

Examples:

# match tests tagged "foo" or "bar*"
includes = ["foo", "bar*"]
# tests with both "foo" and "bar*" tags
includes = ["fooANDbar*"]

corresponds to the -i --include tag * option of testdoc

testdoc.metadata

Type: dict[str, str | StringExpression] | None

Set/override metadata of the top level suite.

Examples:

[metadata]
Version = "1.2"
# value can be read from a file (same rules as --doc)
ReleaseNotes = "release_notes.txt"

corresponds to the -M --metadata name:value * option of testdoc

testdoc.name

Type: str | StringExpression | None

Override the name of the top level suite.

Examples:

name = "My Project"

corresponds to the -N --name name option of testdoc

testdoc.set-tag

Type: list[str | StringExpression] | None

Set given tag(s) to all test cases.

Examples:

set-tag = ["my-suite-tag", "ci"]

corresponds to the -G --settag tag * option of testdoc

testdoc.suites

Type: list[str | StringExpression] | None

Include suites by name.

Examples:

# match a suite by name or by parent.child path
suites = ["MySuite", "Tests.SubSuite"]

corresponds to the -s --suite name * option of testdoc

testdoc.tests

Type: list[str | StringExpression] | None

Include tests by name.

Examples:

tests = ["My Test", "Smoke*"]

corresponds to the -t --test name * option of testdoc

testdoc.title

Type: str | StringExpression | None

Set the title of the generated documentation. Underscores in the title are converted to spaces. The default title is the name of the top level suite.

Examples:

title = "My Library"

corresponds to the -T --title title option of testdoc

tests

Type: list[str | StringExpression] | None

Select tests by name or by long name containing also parent suite name like Parent.Test. Name is case and space insensitive and it can also be a simple pattern where * matches anything, ? matches any single character, and [chars] matches one character in brackets.

Examples:

tests = ["My Test", "Smoke*"]

corresponds to the -t --test name * option of robot

timestamp-outputs

Type: bool | Flag | None

When this option is used, timestamp in a format YYYYMMDD-hhmmss is added to all generated output files between their basename and extension. For example -T -o output.xml -r report.html -l none creates files like output-20070503-154410.xml and report-20070503-154410.html.

Examples:

timestamp-outputs = true

corresponds to the -T --timestampoutputs option of robot

tool

Type: dict[str, Any] | None

Tool configurations.

tool.robotcode-analyze.cache

Type: CacheConfig | None

Defines the cache configuration.

tool.robotcode-analyze.cache.cache-dir

Type: str | None

Path to the cache directory.

tool.robotcode-analyze.cache.cache-namespaces

Type: bool | None

Enable or disable caching of fully analyzed namespace data to disk. Can speed up startup for large projects by skipping re-analysis of unchanged files. Defaults to enabled.

Examples:

[tool.robotcode-analyze.cache]
cache_namespaces = false

tool.robotcode-analyze.cache.extend-ignore-arguments-for-library

Type: list[str] | None

Extend the ignore arguments for library settings.

tool.robotcode-analyze.cache.extend-ignored-libraries

Type: list[str] | None

Extend the ignored libraries setting.

tool.robotcode-analyze.cache.extend-ignored-variables

Type: list[str] | None

Extend the ignored variables setting.

tool.robotcode-analyze.cache.ignore-arguments-for-library

Type: list[str] | None

Specifies a list of libraries for which arguments will be ignored during analysis. This is usefull if you have library that gets variables from a python file as arguments that contains complex data like big dictionaries or complex objects that RobotCode can't handle. You can specify a glob pattern that matches the library name or the source file.

Examples:

  • **/mylibfolder/mylib.py
  • MyLib
  • mylib.subpackage.subpackage

If you change this setting, you may need to run the command RobotCode: Clear Cache and Restart Language Servers.

Ensure your library functions correctly without arguments e.g. by defining default values for all arguments.

tool.robotcode-analyze.cache.ignored-libraries

Type: list[str] | None

Specifies the library names that should not be cached. This is useful if you have a dynamic or hybrid library that has different keywords depending on the arguments. You can specify a glob pattern that matches the library name or the source file.

Examples:

  • **/mylibfolder/mylib.py
  • MyLib
  • mylib.subpackage.subpackage

For robot framework internal libraries, you have to specify the full module name like robot.libraries.Remote.

tool.robotcode-analyze.cache.ignored-variables

Type: list[str] | None

Specifies the variable files that should not be cached. This is useful if you have a dynamic or hybrid variable files that has different variables depending on the arguments. You can specify a glob pattern that matches the variable module name or the source file.

Examples:

  • **/variables/myvars.py
  • MyVariables
  • myvars.subpackage.subpackage

tool.robotcode-analyze.code

Type: CodeConfig | None

Defines the code analysis configuration.

Examples:

[tool.robotcode-analyze.code]
exit_code_mask = "error|warn"

tool.robotcode-analyze.code.collect-unused

Type: bool | None

Enables collection of unused keyword and unused variable diagnostics. By default this is disabled. Set to true to report unused keywords and variables.

Examples:

[tool.robotcode-analyze.code]
collect_unused = true

tool.robotcode-analyze.code.exit-code-mask

Type: list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint', 'all']] | None

Specifies the exit code mask for the code analysis. This is useful if you want to ignore certain types of diagnostics in the result code.

Examples:

[tool.robotcode-analyze.code]
exit_code_mask = ["error", "warn"]

tool.robotcode-analyze.code.extend-exit-code-mask

Type: list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint', 'all']] | None

Extend the exit code mask setting.

tool.robotcode-analyze.exclude-patterns

Type: list[str] | None

Specifies glob patterns for excluding files and folders from analysing by the language server.

tool.robotcode-analyze.extend-cache

Type: CacheConfig | None

Extend the cache configuration.

tool.robotcode-analyze.extend-cache.cache-dir

Type: str | None

Path to the cache directory.

tool.robotcode-analyze.extend-cache.cache-namespaces

Type: bool | None

Enable or disable caching of fully analyzed namespace data to disk. Can speed up startup for large projects by skipping re-analysis of unchanged files. Defaults to enabled.

Examples:

[tool.robotcode-analyze.cache]
cache_namespaces = false

tool.robotcode-analyze.extend-cache.extend-ignore-arguments-for-library

Type: list[str] | None

Extend the ignore arguments for library settings.

tool.robotcode-analyze.extend-cache.extend-ignored-libraries

Type: list[str] | None

Extend the ignored libraries setting.

tool.robotcode-analyze.extend-cache.extend-ignored-variables

Type: list[str] | None

Extend the ignored variables setting.

tool.robotcode-analyze.extend-cache.ignore-arguments-for-library

Type: list[str] | None

Specifies a list of libraries for which arguments will be ignored during analysis. This is usefull if you have library that gets variables from a python file as arguments that contains complex data like big dictionaries or complex objects that RobotCode can't handle. You can specify a glob pattern that matches the library name or the source file.

Examples:

  • **/mylibfolder/mylib.py
  • MyLib
  • mylib.subpackage.subpackage

If you change this setting, you may need to run the command RobotCode: Clear Cache and Restart Language Servers.

Ensure your library functions correctly without arguments e.g. by defining default values for all arguments.

tool.robotcode-analyze.extend-cache.ignored-libraries

Type: list[str] | None

Specifies the library names that should not be cached. This is useful if you have a dynamic or hybrid library that has different keywords depending on the arguments. You can specify a glob pattern that matches the library name or the source file.

Examples:

  • **/mylibfolder/mylib.py
  • MyLib
  • mylib.subpackage.subpackage

For robot framework internal libraries, you have to specify the full module name like robot.libraries.Remote.

tool.robotcode-analyze.extend-cache.ignored-variables

Type: list[str] | None

Specifies the variable files that should not be cached. This is useful if you have a dynamic or hybrid variable files that has different variables depending on the arguments. You can specify a glob pattern that matches the variable module name or the source file.

Examples:

  • **/variables/myvars.py
  • MyVariables
  • myvars.subpackage.subpackage

tool.robotcode-analyze.extend-code

Type: CodeConfig | None

Extend the code analysis configuration.

tool.robotcode-analyze.extend-code.collect-unused

Type: bool | None

Enables collection of unused keyword and unused variable diagnostics. By default this is disabled. Set to true to report unused keywords and variables.

Examples:

[tool.robotcode-analyze.code]
collect_unused = true

tool.robotcode-analyze.extend-code.exit-code-mask

Type: list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint', 'all']] | None

Specifies the exit code mask for the code analysis. This is useful if you want to ignore certain types of diagnostics in the result code.

Examples:

[tool.robotcode-analyze.code]
exit_code_mask = ["error", "warn"]

tool.robotcode-analyze.extend-code.extend-exit-code-mask

Type: list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint', 'all']] | None

Extend the exit code mask setting.

tool.robotcode-analyze.extend-exclude-patterns

Type: list[str] | None

Extend the exclude patterns.

tool.robotcode-analyze.extend-global-library-search-order

Type: list[str] | None

Extend the global library search order setting.

tool.robotcode-analyze.extend-modifiers

Type: ModifiersConfig | None

Extends the modifiers for the analysis.

Examples:

[tool.robotcode-analyze.extend_modifiers]
ignore = ["VariableNotFound"]
extend-hint = ["KeywordNotFound"]
extend-information = ["MultipleKeywords"]

tool.robotcode-analyze.extend-modifiers.error

Type: list[str] | None

Specifies the diagnostics codes to treat as errors.

Examples:

[tool.robotcode-analyze.modifiers]
error = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.extend-modifiers.extend-error

Type: list[str] | None

Extend the diagnostics codes to treat as errors.

Examples:

[tool.robotcode-analyze.modifiers]
extend_error = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.extend-modifiers.extend-hint

Type: list[str] | None

Extend the diagnostics codes to treat as hint.

Examples:

[tool.robotcode-analyze.modifiers]
extend_hint = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.extend-modifiers.extend-ignore

Type: list[str] | None

Extend the diagnostics codes to ignore.

Examples:

[tool.robotcode-analyze.modifiers]
extend_ignore = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.extend-modifiers.extend-information

Type: list[str] | None

Extend the diagnostics codes to treat as information.

Examples:

[tool.robotcode-analyze.modifiers]
extend_information = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.extend-modifiers.extend-warning

Type: list[str] | None

Extend the diagnostics codes to treat as warning.

Examples:

[tool.robotcode-analyze.modifiers]
extend_warning = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.extend-modifiers.hint

Type: list[str] | None

Specifies the diagnostics codes to treat as hint.

Examples:

[tool.robotcode-analyze.modifiers]
hint = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.extend-modifiers.ignore

Type: list[str] | None

Specifies the diagnostics codes to ignore.

Examples:

[tool.robotcode-analyze.modifiers]
ignore = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.extend-modifiers.information

Type: list[str] | None

Specifies the diagnostics codes to treat as information.

Examples:

[tool.robotcode-analyze.modifiers]
information = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.extend-modifiers.warning

Type: list[str] | None

Specifies the diagnostics codes to treat as warning.

Examples:

[tool.robotcode-analyze.modifiers]
warning = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.global-library-search-order

Type: list[str] | None

Specifies a global search order for libraries and resources. This is usefull when you have libraries containing keywords with the same name. RobotCode is unable to analyze the library search order in a file specified with Set Library Search Order, so you can define a global order here. Just make sure to call the Set Library Search Order keyword somewhere in your robot file or internally in your library.

tool.robotcode-analyze.load-library-timeout

Type: int | None

Specifies the timeout in seconds for loading (importing) libraries and variable files during analysis. Increase this if your libraries perform heavy initialization (network calls, large dependency graphs, model loading, etc.).

Must be > 0 when set. If you omit this key, RobotCode will instead look for the environment variable ROBOTCODE_LOAD_LIBRARY_TIMEOUT; otherwise it will use the internal default 10.

Examples:

[tool.robotcode-analyze]
# Fast fail if libraries normally import in < 2s
load_library_timeout = 5
[tool.robotcode-analyze]
# Allow heavy bootstrap (e.g. Selenium + large resource trees)
load_library_timeout = 30
[tool.robotcode-analyze]
# Omit to use default
# load_library_timeout = 15

tool.robotcode-analyze.modifiers

Type: ModifiersConfig | None

Defines the modifiers for the analysis.

Examples:

[tool.robotcode-analyze.modifiers]
ignore = ["VariableNotFound"]
hint = ["KeywordNotFound"]
information = ["MultipleKeywords"]

tool.robotcode-analyze.modifiers.error

Type: list[str] | None

Specifies the diagnostics codes to treat as errors.

Examples:

[tool.robotcode-analyze.modifiers]
error = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.modifiers.extend-error

Type: list[str] | None

Extend the diagnostics codes to treat as errors.

Examples:

[tool.robotcode-analyze.modifiers]
extend_error = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.modifiers.extend-hint

Type: list[str] | None

Extend the diagnostics codes to treat as hint.

Examples:

[tool.robotcode-analyze.modifiers]
extend_hint = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.modifiers.extend-ignore

Type: list[str] | None

Extend the diagnostics codes to ignore.

Examples:

[tool.robotcode-analyze.modifiers]
extend_ignore = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.modifiers.extend-information

Type: list[str] | None

Extend the diagnostics codes to treat as information.

Examples:

[tool.robotcode-analyze.modifiers]
extend_information = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.modifiers.extend-warning

Type: list[str] | None

Extend the diagnostics codes to treat as warning.

Examples:

[tool.robotcode-analyze.modifiers]
extend_warning = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.modifiers.hint

Type: list[str] | None

Specifies the diagnostics codes to treat as hint.

Examples:

[tool.robotcode-analyze.modifiers]
hint = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.modifiers.ignore

Type: list[str] | None

Specifies the diagnostics codes to ignore.

Examples:

[tool.robotcode-analyze.modifiers]
ignore = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.modifiers.information

Type: list[str] | None

Specifies the diagnostics codes to treat as information.

Examples:

[tool.robotcode-analyze.modifiers]
information = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.modifiers.warning

Type: list[str] | None

Specifies the diagnostics codes to treat as warning.

Examples:

[tool.robotcode-analyze.modifiers]
warning = ["VariableNotFound", "multiple-keywords"]

tool.robotcode-analyze.semantic-model

Type: bool | None

Enable the experimental Semantic Model for code analysis. When enabled, LSP features use the new SemanticAnalyzer instead of the legacy NamespaceAnalyzer. This provides richer analysis including static resolution of nested variables and improved semantic highlighting.

This is experimental and may change without notice.

Can also be set via VS Code setting robotcode.experimental.semanticModel. If set in both places, either true value enables the feature.

Examples:

[tool.robotcode-analyze]
semantic-model = true

variable-files

Type: list[str | StringExpression] | None

Python or YAML file file to read variables from. Possible arguments to the variable file can be given after the path using colon or semicolon as separator.

Examples:

variable-files = ["path/vars.yaml", "environment.py:testing"]

corresponds to the -V --variablefile path * option of robot

variables

Type: dict[str, str | StringExpression] | None

Set variables in the test data. Only scalar variables with string value are supported and name is given without ${}. See --variablefile for a more powerful variable setting mechanism.

Examples:

# sets ${name} to "Robot"
[variables]
name = "Robot"

corresponds to the -v --variable name:value * option of robot

xunit

Type: str | StringExpression | None

xUnit compatible result file. Not created unless this option is specified.

Examples:

xunit = "xunit.xml"

corresponds to the -x --xunit file option of robot