Getting Started with ABQ

There are two components required for a successful integration with ABQ: the test framework and the CI platform

ABQ wraps existing test commands to seamlessly distribute a test suite across multiple machines. There's a little bit of project setup and some configuration options which are detailed in the documentation below but, ultimately, distributing a test suite with ABQ is as simple as running abq test followed by -- and the test command you normally run.

abq test -- <your existing test command>

For example, with RSpec for Ruby:

abq test -- bundle exec rspec

You can pass any command with any arguments after the --.

A test suite executed through ABQ can run on as many workers, across as many machines, as you want. To run multiple workers, pass a unique --worker number to each invocation of abq test.

For example, two workers running RSpec for Ruby can be started with:

# on worker machine 0
abq test --worker 0 -- bundle exec rspec

# on worker machine 1
abq test --worker 1 -- bundle exec rspec

If --worker is not specified, ABQ defaults to naming each worker without --worker "worker 0".

As each worker runs, it will report the results of the tests that it's been assigned. ABQ supports aggregating test results after all workers for a test suite run complete.

There's a little bit of test framework configuration and some other CLI options that may be relevant depending on your test framework and your CI platform. Continue reading below for further details.

Test Frameworks

ABQ requires native integration with test frameworks. These are libraries that you add to your project's development dependencies to enhance the capabilities of your underlying test framework. They provide necessary hooks to which ABQ processes connect.

The following test frameworks are supported today. We're working on supporting additional testing frameworks. Please let us know if you'd like to request a specific integration.

Jest

Learn how to integrate ABQ with Jest

Read more

Jest logo

Playwright

Learn how to integrate ABQ with Playwright

Read more

Playwright logo

Pytest

Learn how to integrate ABQ with Pytest

Read more

Pytest logo

RSpec

Learn how to integrate ABQ with RSpec

Read more

RSpec logo

CI Platforms

On CI platforms, ABQ is deployed as a binary. ABQ should run on all CI platforms, and ABQ provides a dedicated integration for Mint as well as GitHub Actions. We're adding support for dedicated integrations on additional CI platforms. Please let us know if you'd like to request support for a specific CI platform.