ABQ versus Knapsack Pro
The following table compares ABQ to Knapsack (free) and Knapsack Pro. The ABQ features apply to ABQ under both Self Hosting and Managed Hosting.
This comparison is not exhaustive, and may change over time.
ABQ | Knapsack | Knapsack Pro | |
---|---|---|---|
Dynamic test distribution | ✅ | ❌ | ✅ |
Automated retries | ✅ | ❌ | ❌ |
Manual retries | ✅ | ✅ | ✅ |
Multiple test runners on one machine | ✅ | ❌ | ❌1 |
Test result aggregation | ✅ | ❌ | ❌ |
Supports custom test frameworks | ✅ | ✅ | ✅ |
Runs on developer machines | ✅ | ❌ | ❌2 |
Encrypted network connections | ✅ | ✅ | ✅ |
The following table lists the existing integrations available for ABQ and Knapsack Pro's Queue Mode. Queue Mode dynamically distributes tests, like ABQ, but supports less test frameworks than Knapsack without Queue Mode does.
ABQ | Knapsack Pro - Queue Mode | |
---|---|---|
Ruby - RSpec | ✅ | ✅ |
Ruby - Cucumber | ❌ | ✅ |
Ruby - Minitest | ❌ | ✅ |
JavaScript - Jest | ✅ | ✅ |
JavaScript - Playwright | ✅ | ❌ |
Migrating to ABQ
If you are using Knapsack, you likely already have multiple jobs set up to execute tests on your CI. That's great - that's an important step to a successful ABQ integration!
We recommend:
-
Installing the appropriate test framework plugin
-
Recovering the test command you use to run your test suite locally. This may be different from how your test suite is configured to run with Knapsack, as Knapsack sometimes uses a different test resolution logic than your test framework might - for example, via
KNAPSACK_PRO_TEST_FILE_PATTERN
. -
prepending
abq test --
to the recovered test command. -
After this works, consider reading the framework-specific documentation to get the most out of abq.
If after migrating, test times are slower, try the by-file
test strategy, which mimics
knapsack defaults and may be faster.
e.g. abq test --test-strategy by-file -- <your-test-command>
If you run into any other issues, please reach out in the RWX Discord!
See Getting Started with ABQ for more details.
Footnotes
-
Knapsack Pro supports multiple test runners with Ruby's
parallel_tests
, but does not natively support multiple runners like ABQ does withabq test -n <num-runners>
. ↩