Skip to content

brandonphillips/rails-app-with-knapsack_pro

 
 

Repository files navigation

Rails app with knapsack_pro gem

Circle CI

This is example Ruby on Rails app with knapsack_pro gem. Knapsack Pro splits tests across CI nodes and makes sure that tests will run comparable time on each node.

You can read more about knapsack_pro gem here. You will find there info how to set up your test suite and how to do it on your favorite CI server.

How to load knapsack_pro rake tasks

See Rakefile.

Parallel rspec test suite with knapsack_pro

How to set up knapsack_pro

See spec/spec_helper.rb

You can use below command on CI to run tests:

# Run this on first CI server
$ KNAPSACK_PRO_CI_NODE_TOTAL=2 KNAPSACK_PRO_CI_NODE_INDEX=0 bundle exec rake knapsack_pro:rspec

# Run this on second CI server
$ KNAPSACK_PRO_CI_NODE_TOTAL=2 KNAPSACK_PRO_CI_NODE_INDEX=1 bundle exec rake knapsack_pro:rspec

See .circleci/config.yml to see how we set up CircleCI.

Parallel cucumber test suite with knapsack_pro

How to set up knapsack_pro

See features/support/knapsack_pro.rb

You can use below command on CI to run tests:

# Run this on first CI server
$ KNAPSACK_PRO_CI_NODE_TOTAL=2 KNAPSACK_PRO_CI_NODE_INDEX=0 bundle exec rake knapsack_pro:cucumber

# Run this on second CI server
$ KNAPSACK_PRO_CI_NODE_TOTAL=2 KNAPSACK_PRO_CI_NODE_INDEX=1 bundle exec rake knapsack_pro:cucumber

See .circleci/config.yml to see how we set up CircleCI.

Parallel minitest test suite with knapsack_pro

How to set up knapsack_pro

See test/test_helper.rb

You can use below command on CI to run tests:

# Run this on first CI server
$ KNAPSACK_PRO_CI_NODE_TOTAL=2 KNAPSACK_PRO_CI_NODE_INDEX=0 bundle exec rake knapsack_pro:minitest

# Run this on second CI server
$ KNAPSACK_PRO_CI_NODE_TOTAL=2 KNAPSACK_PRO_CI_NODE_INDEX=1 bundle exec rake knapsack_pro:minitest

See .circleci/config.yml to see how we set up CircleCI.

Parallel test-unit test suite with knapsack_pro

How to set up knapsack_pro

See test-unit/test_helper.rb

You can use below command on CI to run tests:

# Run this on first CI server
$ KNAPSACK_PRO_CI_NODE_TOTAL=2 KNAPSACK_PRO_CI_NODE_INDEX=0 bundle exec rake knapsack_pro:test_unit

# Run this on second CI server
$ KNAPSACK_PRO_CI_NODE_TOTAL=2 KNAPSACK_PRO_CI_NODE_INDEX=1 bundle exec rake knapsack_pro:test_unit

See .circleci/config.yml to see how we set up CircleCI.

Development of this project

Ensure you created databases:

$ rake db:create
$ TEST_ENV_NUMBER=1 rake db:create
$ TEST_ENV_NUMBER=2 rake db:create

In bin directory are files:

  • bin/knapsack_pro_rspec
  • bin/knapsack_pro_minitest
  • bin/knapsack_pro_test_unit
  • bin/knapsack_pro_cucumber

They exist for test reason when you want to run this project on local machine. In that case the KNAPSACK_PRO_ENDPOINT is pointed to staging which is reserved only for Knapsack Pro developers.

RSpec dry run

$ mkdir -p tmp/knapsack_pro/rspec

$ bundle exec rspec --dry-run --format json --out tmp/knapsack_pro/rspec/dry_run.json spec

About

Example of Ruby on Rails app with knapsack_pro gem. See the gem https://github.com/KnapsackPro/knapsack_pro-ruby

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 68.7%
  • Shell 20.0%
  • HTML 6.2%
  • Gherkin 2.6%
  • CSS 1.8%
  • JavaScript 0.6%
  • Dockerfile 0.1%