Knapsack Pro

ruby gem uses API


open source gem

Queue mode - dynamic tests allocation across CI nodes

Autobalance tests to get optimal test suite split betweeen CI nodes.
It is designed for tests with random time execution and overloaded CI nodes with random performance. (how it works & how to enable)

Regular mode - test suite split based on time execution

It generates subset of test suite per CI node before running tests.

Automated tests time execution recording

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

More optimal test suite split for newly created branches

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

Bulid metrics to detect bottlenecks

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)


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

Ruby testing tools support


CI support build into the gem

Gitlab CI
Jenkins (example of set up)
Can work with other CI server

How Knapsack Pro makes my life easier as opposed to regular knapsack gem?

  • Pro version has queue mode designed for optimal test suite split thanks to dynamic tests allocation. (Learn more)
  • With the Pro version the setup and the ongoing work is easier because you don’t have to manually generate knapsack json report with test files time execution for each test suite like rspec, cucumber etc.
  • The Pro version tracks all you branches so when your test code changes the Pro tries to provide you as optimal test suite split as possible.
  • When your test codebase changes over time you need to manually generate a new knapsack json report in free gem version which is extra overhead and waste of time of the developer.