Features

Knapsack Pro

Ruby & JavaScript

Queue mode - dynamic tests allocation across CI nodes play

Recommended way to run tests. Autobalance tests split between CI nodes to get optimal test suite time.
Mitigate CI node bottlenecks like tests with random time execution or overloaded CI nodes with random performance. (how it works & how to enable)

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.

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 in Regular Mode.

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

JavaScript test runners support (see)

Cypress.io
Jest

Other languages test runners support

Do you use different programming language or test runner? Let us know in the poll

Supported CI providers

CircleCI.com
Travis-CI.org
Buildkite.com
Codeship.com
Heroku CI
Solano CI
AppVeyor
Gitlab CI
SemaphoreCI.com
Cirrus-CI.org
Jenkins (example of set up)
Can work with other CI servers (setup with ENV vars)