Skip to content

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.

shell
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 ​
  1. First, specify the target name using the appropriate target flag. For example, use the --slack flag to specify the incoming webhook URL.
  2. 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.
sh
npx testbeats@latest publish --api-key '<api-key>' --slack '<slack-incoming-webhook-url>' --junit 'path/to/your/report.xml'
sh
# 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:

json
{
  "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:

sh
npx testbeats@latest publish -c path/to/testbeats.config.json
sh
# 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.

Released under the MIT License.