PyTest ​
PyTest is a mature full-featured Python testing tool that helps you write better programs. It is widely used for all types and levels of software testing.
This guide explains how to integrate PyTest with TestBeats for centralized and AI-powered reporting.
Prerequisites ​
TestBeats API Key (optional) - Sign in for free with your Work Email at testbeats portal to have a centralized and AI powered reporting. Once you're signed in, create a new organization and generate an API Key.
In-coming Webhook URL (optional) - Create an incoming webhook url for your Slack or Microsoft Teams or Google Chat.
Integration ​
TestBeats can consume JUnit XML reports, which PyTest can generate.
1. Configure PyTest to generate JUnit XML report ​
You can instruct PyTest to generate a JUnit XML report file by using the --junitxml
command-line option.
pytest --junitxml=path/to/your/report.xml
Replace path/to/your/report.xml
with the desired path and filename for your report.
2. Configure TestBeats to consume JUnit XML report ​
Assume the generated test result file is report.xml
. Now the test results can be either published using the command line mode or the configuration mode.
2.1 Command Line Mode ​
- First, specify the target name using the appropriate target flag. For example, use the
--slack
flag to specify the incoming webhook URL. - Next, specify the path to the result files using the appropriate results format flag. For PyTest, since it generates JUnit XML, you will use the
--junit
flag.
npx testbeats@latest publish --api-key '<api-key>' --slack '<slack-incoming-webhook-url>' --junit 'path/to/your/report.xml'
# Download the executable via `curl`.
curl https://raw.githubusercontent.com/test-results-reporter/testbeats/main/scripts/download-latest.sh | bash
# After download completes, run the executable based on you operating system.
./testbeats-linux publish --api-key '<api-key>' --slack '<slack-incoming-webhook-url>' --junit 'path/to/your/report.xml'
TIP
- TestBeats API Key is optional.
- Environment variable
TEST_BEATS_API_KEY
can also be used to specify the API key.
2.2 Configuration Mode ​
Update your testbeats.config.json
file to include the junit
result file:
{
"api_key": "<api-key>",
"targets": [
{
"name": "slack",
"inputs": {
"url": "<incoming-webhook-url>"
}
}
],
"results": [
{
"type": "junit",
"files": ["path/to/your/report.xml"]
}
]
}
Make sure to replace "<api-key>"
, "<incoming-webhook-url>"
, and "path/to/your/report.xml"
with your actual values.
Then run TestBeats using the configuration file:
npx testbeats@latest publish -c path/to/testbeats.config.json
# Download the executable via `curl`.
curl https://raw.githubusercontent.com/test-results-reporter/testbeats/main/scripts/download-latest.sh | bash
# After download completes, run the executable based on you operating system.
./testbeats-linux publish -c path/to/testbeats.config.json
Example Integration ​
For a complete example of integrating PyTest with TestBeats, refer to this GitHub repository example.