👋 Email us at [email protected] with questions or feedback. We'd love to hear from you. If you have an account with RWX, view your support page for access to support via Slack.

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 --.

abq will not shell-interpret the command passed to it after --. If your command requires shell interpretation, be sure to do so prior to providing it to abq.

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.

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 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.