# Collecting test data from other test runners

If a native Buildkite test collector is not available for your language or test runner, you can instead use any of the following mechanisms to integrate your particular test runner with Buildkite Test Engine:

> 📘 Recommended setup
> The recommended way to set up a new test suite is to add the [Tests Buildkite plugin](https://buildkite.com/resources/plugins/buildkite-plugins/tests-buildkite-plugin/) to the step that runs your tests. It works with every runner that [bktec](/docs/pipelines/configure/tests/bktec/installing-and-using-the-client) 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.

- Importing your test run data from:

    * [JUnit XML](/docs/pipelines/configure/tests/test-collection/importing-junit-xml)
    * [JSON](/docs/pipelines/configure/tests/test-collection/importing-json)

- [Writing your own test collector](/docs/pipelines/configure/tests/test-collection/your-own-collectors).
