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