Knapsack Pro

Features of knapsack_pro vs knapsack Ruby gem

Knapsack Pro

Ruby gem

Knapsack

Ruby gem

Queue mode - dynamic tests allocation across CI nodes play

The recommended way to run tests - it ensures all parallel CI nodes finish work at a similar time. It auto balances tests split between parallel CI nodes to get the fastest CI build time.

Queue Mode solves CI node bottlenecks impacting your parallel tests split:
  • random test files execution time (i.e. E2E tests)
  • flaky tests (retrying test can slow down CI node)
  • failed tests often leave room on CI node to run more tests
  • overloaded CI node can become a bottleneck
You can find more details about Queue Mode in the docs.

Regular mode - test suite split based on time execution play

It is deterministic way of running tests. It generates subset of test suite per CI node before running tests. Can be used with knapsack_pro ruby gem.

Auto split slow test file between parallel CI nodes

A single test file can be auto split by test examples between parallel jobs.

Automated tests time execution recording

Test suite split based on most up to date tests time execution data

Support for short-lived CI nodes

Knapsack Pro is fault-tolerant and can withstand possible CI instance preemptions (shut down) when you use highly affordable CI nodes like Google Cloud Preemptible VMs or Amazon EC2 Spot Instances. See how to enable it in Queue Mode. It's enabled by default in Regular Mode.

Knapsack Pro available as Heroku add-on

Knapsack Pro Heroku add-on page & See introduction video

Optimal test suite split for newly created branches

Smart test suite split when tests time execution data are not available

CI build metrics to detect bottlenecks

Find slow test files.

Export historical metrics about CI builds

How to export test suite timing data from Knapsack Pro API

Track test suite split for git commit hash
Track test suite split for branch name
Track test suite split for CI node total number
Retry failed CI node with the same subset of tests. See how to enable it in Queue Mode (Knapsack Pro only). It's enabled by default in Regular Mode.
Run tests for particular CI node in your development environment (see)

Security

HTTPS connection to Knapsack Pro API
Test file names encryption before send data to Knapsack Pro API (how to enable)
Fallback mode - run tests even in case of connection problems with Knapsack Pro API (see)

Ruby test runners support (see)

RSpec
Minitest
Test::Unit
Cucumber
Spinach
Turnip

Other languages test runners support

Learn how to build native integration with Knapsack Pro API to run tests in parallel for any test runner (testing framework) using JavaScript

How to build a custom Knapsack Pro API client from scratch in any programming language

Do you use different programming language or test runner? See our features page or let us know in the poll.

Supported CI providers

It works with all CI servers (setup with ENV vars)
Knapsack Pro is CI provider-agnostic (it works with every CI provider). The CI providers listed below are ones whose environment variables could be automatically read by Knapsack Pro, making the setup faster. If your CI provider is not listed below then you still can use Knapsack Pro, just follow the installation guide to manually set environment variables needed by Knapsack Pro.
GitHub Actions ( see video demo)
CircleCI.com
Buildkite.com
Gitlab CI
Heroku CI (integration also available as Heroku add-on)
SemaphoreCI.com
Jenkins
Travis-CI.org
Codeship.com
Codefresh.io ( see video demo)
AppVeyor
Cirrus-CI.org
Show more

Start using Knapsack Pro

Sign up and speed up your tests.