Python collectors
To use Buildkite Test Engine with your Python projects, use the buildkite-test-collector package with pytest.
The recommended way to set up a new test suite is to add the Tests Buildkite plugin to the step that runs your tests. It works with every runner that bktec supports, and the entire setup is configuration-only — you can get a test suite running through changes to pipeline.yml alone, with no modifications to your application code.
Use the language-specific test collector documented on this page when you want deeper framework integration — such as custom execution tags, span annotations, or richer per-framework data. Language-specific collectors still pair well with the Tests Buildkite plugin, but adding one requires changes to your application code.
You can also upload test results by importing JSON or JUnit XML.
Tests Buildkite plugin example for pytest
The following step uses the Tests Buildkite plugin to run a pytest suite through bktec. The plugin downloads bktec, requests an OIDC token, ensures the test suite exists, and exports the environment variables that bktec expects, so the step's command only needs to invoke bktec run:
steps:
- label: "pytest"
command: bktec run
plugins:
- tests#v1.0.0:
test-runner: pytest
parallelism: 4
See the Tests Buildkite plugin page for the full plugin reference, including all supported options and dynamic parallelism with bktec plan.
pytest collector
pytest is a testing framework for Python.
If you're already using pytest, then you can install buildkite-test-collector to collect test results into your Test Engine dashboard.
Before you start, make sure pytest runs with access to CI environment variables.
To get started with buildkite-test-collector:
In your CI environment, set the
BUILDKITE_ANALYTICS_TOKENenvironment variable securely to your Buildkite Test Engine API token.-
Add
buildkite-test-collectorto your list of dependencies. Some examples:-
If you're using a
requirements.txtfile, addbuildkite-test-collectoron a new line. -
If you're using a
setup.pyfile, addbuildkite-test-collectorto theextras_requireargument, like this:extras_require={"dev": ["pytest", "buildkite-test-collector"]} -
If you're using Pipenv, run
pipenv install --dev buildkite-test-collector.
If you're using another tool, see your dependency management system's documentation for help.
-
-
Commit and push your changes:
$ git add . $ git commit -m "Install and set up Buildkite Test Engine" $ git push
Once you're done, in your Test Engine dashboard, you'll see analytics of test executions on all branches that include this code.
If you don't see branch names, build numbers, or commit hashes in Test Engine, then read CI environments to learn more about exporting your environment to the collector.