buildnote report
Collect and report on test results
Usage
buildnote report <options>
Options
--enabled
Specifies a list of enabled collection types
Values: (all|none|junit|nunit|xunit|testng|robot|cucumber|ctrf|trx|dart|qt|events|files|githubAction)
--source
Specifies source data mode (local
or remote
).
Local Mode
When local source data mode is selected, reports will be produced from locally collected events configured via command line options or buildnote.json
config.
Remote Mode
When remote source data specified, reports will be produced from events collected and stored in buildnote service. Configuring BUILDNOTE_API_KEY
environment variable is required for remote mode.
Values: (local|remote)
--summary-enabled
Produces extended summary if possible.
If BUILDNOTE_API_KEY
environment variable is configured and this option is enabled, the summary will be additionally fetched from the Buildnote service.
Values: [true|false]
--org
Organisation identifier
Values: value
--project
Project identifier
Values: value
--module
Module identifier
Values: value
--build
Build identifier
Values: value
--sha
Commit SHA associated with the upload (e.g: 58e53b26ced5fffc72ba5427535e7b5867950b13
Values: value
--ref
Commit Ref associated with the upload (e.g:refs/heads/main)
Values: value
-h, --help
Show this message and exit
JUnit Collector
Options for collecting junit events.
--junit-enabled
Enable or disable junit collector.
Example:
--junit-enabled true
This flag will replace collect.junit.enabled
value set in buildnote.json
config file.
Values: [true|false]
--junit-include
Glob pattern for files to include.
Example of including nested files:
--junit-include "**/file-*.xml"
Example of multiple includes:
--junit-include "**/file-*.xml" --junit-include "another-file.txt"
This option will merge with collect.junit.include
values set in buildnote.json
config file.
Values: text
--junit-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--junit-exclude "**/out"
Example of multiple excludes:
--junit-exclude "**/out" --junit-exclude "build"
This option will merge with collect.junit.exclude
values set in buildnote.json
config file.
Values: text
--junit-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--junit-metadata user="$USER" --junit-metadata host="$HOST"
This option will merge with collect.junit.metadata
values set in buildnote.json
config file.
Values: value
TestNG Collector
Options for collecting testng events.
--testng-enabled
Enable or disable testng collector.
Example:
--testng-enabled true
This flag will replace collect.testng.enabled
value set in buildnote.json
config file.
Values: [true|false]
--testng-include
Glob pattern for files to include.
Example of including nested files:
--testng-include "**/file-*.xml"
Example of multiple includes:
--testng-include "**/file-*.xml" --testng-include "another-file.txt"
This option will merge with collect.testng.include
values set in buildnote.json
config file.
Values: text
--testng-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--testng-exclude "**/out"
Example of multiple excludes:
--testng-exclude "**/out" --testng-exclude "build"
This option will merge with collect.testng.exclude
values set in buildnote.json
config file.
Values: text
--testng-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--testng-metadata user="$USER" --testng-metadata host="$HOST"
This option will merge with collect.testng.metadata
values set in buildnote.json
config file.
Values: value
Cucumber Collector
Options for collecting cucumber events.
--cucumber-enabled
Enable or disable cucumber collector.
Example:
--cucumber-enabled true
This flag will replace collect.cucumber.enabled
value set in buildnote.json
config file.
Values: [true|false]
--cucumber-include
Glob pattern for files to include.
Example of including nested files:
--cucumber-include "**/file-*.xml"
Example of multiple includes:
--cucumber-include "**/file-*.xml" --cucumber-include "another-file.txt"
This option will merge with collect.cucumber.include
values set in buildnote.json
config file.
Values: text
--cucumber-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--cucumber-exclude "**/out"
Example of multiple excludes:
--cucumber-exclude "**/out" --cucumber-exclude "build"
This option will merge with collect.cucumber.exclude
values set in buildnote.json
config file.
Values: text
--cucumber-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--cucumber-metadata user="$USER" --cucumber-metadata host="$HOST"
This option will merge with collect.cucumber.metadata
values set in buildnote.json
config file.
Values: value
Dart/Flutter Collector
Options for collecting dart/flutter events.
--dart-enabled
Enable or disable dart/flutter collector.
Example:
--dart-enabled true
This flag will replace collect.dart.enabled
value set in buildnote.json
config file.
Values: [true|false]
--dart-include
Glob pattern for files to include.
Example of including nested files:
--dart-include "**/file-*.xml"
Example of multiple includes:
--dart-include "**/file-*.xml" --dart-include "another-file.txt"
This option will merge with collect.dart.include
values set in buildnote.json
config file.
Values: text
--dart-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--dart-exclude "**/out"
Example of multiple excludes:
--dart-exclude "**/out" --dart-exclude "build"
This option will merge with collect.dart.exclude
values set in buildnote.json
config file.
Values: text
--dart-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--dart-metadata user="$USER" --dart-metadata host="$HOST"
This option will merge with collect.dart.metadata
values set in buildnote.json
config file.
Values: value
NUnit Collector
Options for collecting nunit events.
--nunit-enabled
Enable or disable nunit collector.
Example:
--nunit-enabled true
This flag will replace collect.nunit.enabled
value set in buildnote.json
config file.
Values: [true|false]
--nunit-include
Glob pattern for files to include.
Example of including nested files:
--nunit-include "**/file-*.xml"
Example of multiple includes:
--nunit-include "**/file-*.xml" --nunit-include "another-file.txt"
This option will merge with collect.nunit.include
values set in buildnote.json
config file.
Values: text
--nunit-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--nunit-exclude "**/out"
Example of multiple excludes:
--nunit-exclude "**/out" --nunit-exclude "build"
This option will merge with collect.nunit.exclude
values set in buildnote.json
config file.
Values: text
--nunit-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--nunit-metadata user="$USER" --nunit-metadata host="$HOST"
This option will merge with collect.nunit.metadata
values set in buildnote.json
config file.
Values: value
XUnit Collector
Options for collecting xunit events.
--xunit-enabled
Enable or disable xunit collector.
Example:
--xunit-enabled true
This flag will replace collect.xunit.enabled
value set in buildnote.json
config file.
Values: [true|false]
--xunit-include
Glob pattern for files to include.
Example of including nested files:
--xunit-include "**/file-*.xml"
Example of multiple includes:
--xunit-include "**/file-*.xml" --xunit-include "another-file.txt"
This option will merge with collect.xunit.include
values set in buildnote.json
config file.
Values: text
--xunit-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--xunit-exclude "**/out"
Example of multiple excludes:
--xunit-exclude "**/out" --xunit-exclude "build"
This option will merge with collect.xunit.exclude
values set in buildnote.json
config file.
Values: text
--xunit-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--xunit-metadata user="$USER" --xunit-metadata host="$HOST"
This option will merge with collect.xunit.metadata
values set in buildnote.json
config file.
Values: value
CTRF Collector
Options for collecting ctrf events.
--ctrf-enabled
Enable or disable ctrf collector.
Example:
--ctrf-enabled true
This flag will replace collect.ctrf.enabled
value set in buildnote.json
config file.
Values: [true|false]
--ctrf-include
Glob pattern for files to include.
Example of including nested files:
--ctrf-include "**/file-*.xml"
Example of multiple includes:
--ctrf-include "**/file-*.xml" --ctrf-include "another-file.txt"
This option will merge with collect.ctrf.include
values set in buildnote.json
config file.
Values: text
--ctrf-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--ctrf-exclude "**/out"
Example of multiple excludes:
--ctrf-exclude "**/out" --ctrf-exclude "build"
This option will merge with collect.ctrf.exclude
values set in buildnote.json
config file.
Values: text
--ctrf-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--ctrf-metadata user="$USER" --ctrf-metadata host="$HOST"
This option will merge with collect.ctrf.metadata
values set in buildnote.json
config file.
Values: value
TRX Collector
Options for collecting trx events.
--trx-enabled
Enable or disable trx collector.
Example:
--trx-enabled true
This flag will replace collect.trx.enabled
value set in buildnote.json
config file.
Values: [true|false]
--trx-include
Glob pattern for files to include.
Example of including nested files:
--trx-include "**/file-*.xml"
Example of multiple includes:
--trx-include "**/file-*.xml" --trx-include "another-file.txt"
This option will merge with collect.trx.include
values set in buildnote.json
config file.
Values: text
--trx-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--trx-exclude "**/out"
Example of multiple excludes:
--trx-exclude "**/out" --trx-exclude "build"
This option will merge with collect.trx.exclude
values set in buildnote.json
config file.
Values: text
--trx-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--trx-metadata user="$USER" --trx-metadata host="$HOST"
This option will merge with collect.trx.metadata
values set in buildnote.json
config file.
Values: value
Robot Framework Collector
Options for collecting robot framework events.
--robot-enabled
Enable or disable robot framework collector.
Example:
--robot-enabled true
This flag will replace collect.robot.enabled
value set in buildnote.json
config file.
Values: [true|false]
--robot-include
Glob pattern for files to include.
Example of including nested files:
--robot-include "**/file-*.xml"
Example of multiple includes:
--robot-include "**/file-*.xml" --robot-include "another-file.txt"
This option will merge with collect.robot.include
values set in buildnote.json
config file.
Values: text
--robot-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--robot-exclude "**/out"
Example of multiple excludes:
--robot-exclude "**/out" --robot-exclude "build"
This option will merge with collect.robot.exclude
values set in buildnote.json
config file.
Values: text
--robot-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--robot-metadata user="$USER" --robot-metadata host="$HOST"
This option will merge with collect.robot.metadata
values set in buildnote.json
config file.
Values: value
QT Test Collector
Options for collecting qt test events.
--qt-enabled
Enable or disable qt test collector.
Example:
--qt-enabled true
This flag will replace collect.qt.enabled
value set in buildnote.json
config file.
Values: [true|false]
--qt-include
Glob pattern for files to include.
Example of including nested files:
--qt-include "**/file-*.xml"
Example of multiple includes:
--qt-include "**/file-*.xml" --qt-include "another-file.txt"
This option will merge with collect.qt.include
values set in buildnote.json
config file.
Values: text
--qt-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--qt-exclude "**/out"
Example of multiple excludes:
--qt-exclude "**/out" --qt-exclude "build"
This option will merge with collect.qt.exclude
values set in buildnote.json
config file.
Values: text
--qt-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--qt-metadata user="$USER" --qt-metadata host="$HOST"
This option will merge with collect.qt.metadata
values set in buildnote.json
config file.
Values: value
Slack Reporter
Options for slack reporter.
--slack-enabled
Enable or disable slack reporter.
Example:
--slack-enabled true
This flag will replace report.slack.enabled
value set in buildnote.json
config file.
Values: [true|false]
--slack-url
Slack webhook notification url.
Example:
--slack-url "https://hooks.slack.com/services/..."
Urls are evaluated as expressions and can, for example, be sourced from environment variables.
Example with environment variable:
--slack-url "{{env.SLACK_WEBHOOK_URL}}"
This option will replace report.slack.url
value set in buildnote.json
config file.
Values: text
--slack-condition
Slack webhook condition evaluated as expression.
Example for failing builds only:
--slack-condition "{{failed}}"
You can also access environment variables and combine expressions.
Example of complex condition:
--slack-condition "{{failed || successful || env.USER == 'some-user'}}"
This option will replace report.slack.condition
value set in buildnote.json
config file.
Values: text
--slack-title
Slack message title that replaces default one.
Example of fixed title:
--slack-title "Some title"
Title is evaluated as expressions so you can also access environment and context variables.
Example of complex title:
--slack-title "E2E test {{status}} - {{env.GITHUB_WORKFLOW}} - {{env.GITHUB_RUN_ID}} (attempt: {{env.GITHUB_RUN_ATTEMPT}})"
This option will replace report.slack.title
value set in buildnote.json
config file.
Values: text
--slack-title-url
Slack message title url that replaces default one.
Title url is evaluated as expressions and can be templated with environment and context variables.
Example with variable:
--slack-title-url "https://www.example.com/status/{{status}}"
This option will replace report.slack.titleUrl
value set in buildnote.json
config file.
Values: text
Discord Reporter
Options for discord reporter.
--discord-enabled
Enable or disable discord reporter.
Example:
--discord-enabled true
This flag will replace report.discord.enabled
value set in buildnote.json
config file.
Values: [true|false]
--discord-url
Discord webhook notification url.
Example:
--discord-url "https://discord.com/api/webhooks/..."
Urls are evaluated as expressions and can, for example, be sourced from environment variables.
Example with environment variable:
--discord-url "{{env.DISCORD_WEBHOOK_URL}}"
This option will replace report.discord.url
value set in buildnote.json
config file.
Values: text
--discord-condition
Discord webhook condition evaluated as expression.
Example for failing builds only:
--discord-condition "{{failed}}"
You can also access environment variables and combine expressions.
Example of complex condition:
--discord-condition "{{failed || successful || env.USER == 'some-user'}}"
This option will replace report.discord.condition
value set in buildnote.json
config file.
Values: text
--discord-title
Discord message title that replaces default one.
Example of fixed title:
--discord-title "Some title"
Title is evaluated as expressions so you can also access environment and context variables.
Example of complex title:
--discord-title "E2E test {{status}} - {{env.GITHUB_WORKFLOW}} - {{env.GITHUB_RUN_ID}} (attempt: {{env.GITHUB_RUN_ATTEMPT}})"
This option will replace report.discord.title
value set in buildnote.json
config file.
Values: text
--discord-title-url
Discord message title url that replaces default one.
Title url is evaluated as expressions and can be templated with environment and context variables.
Example with variable:
--discord-title-url "https://www.example.com/status/{{status}}"
This option will replace report.discord.titleUrl
value set in buildnote.json
config file.
Values: text
GitHub Reporter
Options for GitHub reporter.
--github-enabled
Enable or disable GitHub reporter.
Example:
--github-enabled true
This flag will replace report.github.enabled
value set in buildnote.json
config file.
Values: [true|false]
--github-token
GitHub token.
Example:
--github-token "gha_..."
Token is evaluated as expressions and can, for example, be sourced from environment variables.
Example with environment variable:
--github-token "{{env.GITHUB_TOKEN}}"
If you would like to use default GitHub Action token (secrets.GITHUB_TOKEN
) adjusting the workflow job permissions is required.
Those permissions vary by repository type:
Public repositories:
permissions:
checks: write
pull-requests: write
Private repositories:
permissions:
contents: read
issues: read
checks: write
pull-requests: write
NOTE
When using --github-comment-enabled false
the issue comment is disabled and the pull-requests: write
permission is not required.
This option will replace report.github.token
value set in buildnote.json
config file.
Values: text
--github-condition
GitHub report condition evaluated as expression.
Example for failing builds only:
--github-condition "{{failed}}"
You can also access environment variables and combine expressions.
Example of complex condition:
--github-condition "{{failed || successful || env.USER == 'some-user'}}"
This option will replace report.github.condition
value set in buildnote.json
config file.
Values: text
--github-comment-enabled
Enable or disable GitHub comment on PRs.
Example:
--github-comment-enabled true
This flag will replace report.github.commentEnabled
value set in buildnote.json
config file.
Values: [true|false]
--github-comment-updates
Enable or disable GitHub comment updates.
If true
it updates existing comment on issues, otherwise set to false
it will create a new issue comment each time.
Example:
--github-comment-updates true
This flag will replace report.github.commentUpdates
value set in buildnote.json
config file.
Values: [true|false]
--github-comment-title
GitHub issue comment title that replaces default one.
IMPORTANT
GitHub comments will be updated based on comment title. This may cause previous comments to be overridden if multiple reports are collected in different stages of the build.
Example of fixed title:
--github-comment-title "Some title"
Title is evaluated as expressions so you can also access environment and context variables.
Example of complex title:
--github-comment-title "E2E test {{status}} - {{env.GITHUB_WORKFLOW}} - {{env.GITHUB_RUN_ID}} (attempt: {{env.GITHUB_RUN_ATTEMPT}})"
This option will replace report.github.commentTitle
value set in buildnote.json
config file.
Values: text
--github-comment-title-url
GitHub issue comment title url that replaces default one.
Title url is evaluated as expressions and can be templated with environment and context variables.
Example with variable:
--github-comment-title-url "https://www.example.com/status/{{status}}"
This option will replace report.github.commentTitleUrl
value set in buildnote.json
config file.
Values: text
Html Reporter
Options for html reporter.
--html-enabled
Enable or disable html reporter.
Example:
--html-enabled true
This flag will replace report.html.enabled
value set in buildnote.json
config file.
Values: [true|false]
--html-condition
Html reporter condition evaluated as expression.
Example for failing builds only:
--html-condition "{{failed}}"
You can also access environment variables and combine expressions.
Example of complex condition:
--html-condition "{{failed || successful || env.USER == 'some-user'}}"
This option will replace report.html.condition
value set in buildnote.json
config file.
Values: text
--html-output-file
Html reporter output file.
Example for fixed output file:
--html-output-file "test-report.html"
You can also access environment variables and combine expressions.
Example of complex output file:
--html-output-file "{{env.USER}}/test-report.html"
This option will replace report.html.outputFile
value set in buildnote.json
config file.
Values: text
Context Variables
This section contains the list of context variables available when evaluating expressions.
always
Boolean that is always true
.
build
Build identifier for this run.
failed
Boolean that indicates if any events in the report had failed.
failed.count
Number of failed events in the report.
failed.percentage
Formatted percentage of failed events in the report.
Example: 0.97%
module
Name of the module.
never
Boolean that is always false
.
org
Name of the org.
project
Name of the project.
skipped
Boolean that indicates if all events in the report were skipped.
skipped.count
Number of skipped events in the report.
skipped.percentage
Formatted percentage of skipped events in the report.
Example: 0.97%
status
Overall status of the report.
Example: successful
, failed
or skipped
successful
Boolean that indicates no failures and that some events in the report were successful.
successful.count
Number of successful events in the report.
successful.percentage
Formatted percentage of successful events in the report.
Example: 0.97%
total
Total number events in the report.