Swift collectors
To use Buildkite Test Engine with your Swift projects, use the
test-collector-swift package with XCTest.
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.
XCTest
XCTest is a test framework to write unit tests for your Xcode projects.
Before you start, make sure XCTest runs with access to CI environment variables.
Create a test suite and copy the test suite API token.
-
Securely set the
BUILDKITE_ANALYTICS_TOKENsecret on your CI to the API token from the previous step.If you're testing an Xcode project, note that Xcode doesn't automatically pass environment variables to the test runner, so you need to add them manually. In your test scheme or test plan, go to the Environment Variables section and add the following key-value pair:
BUILDKITE_ANALYTICS_TOKEN: $(BUILDKITE_ANALYTICS_TOKEN) -
In the
Package.swiftfile, addhttps://github.com/buildkite/test-collector-swiftto the dependencies and addBuildkiteTestCollectorto any test target requiring analytics:let package = Package( name: "MyProject", dependencies: [ .package(url: "https://github.com/buildkite/test-collector-swift", from: "0.3.0") ], targets: [ .target(name: "MyProject"), .testTarget( name: "MyProjectTests", dependencies: [ "MyProject", .product(name: "BuildkiteTestCollector", package: "test-collector-swift") ] ) ] ) -
Commit and push your changes:
git checkout -b add-buildkite-test-engine git commit -am "Add Buildkite Test Engine" git push origin add-buildkite-test-engine
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.
Debugging
To enable debugging output, set the BUILDKITE_ANALYTICS_DEBUG_ENABLED environment variable to true.