How we speed up testing and building process of our Ember app at Brandnew? ~2.5x faster!

The scale

Shipping fast is important

So every minute we gain in building process can gain us about 2.5 minutes in the whole process.

Run tests in parallel

$ ember exam --split=NUMBER_OF_PARTITIONS --parallel
$ ember exam --split=3 --partition=1 --parallel
# circle.ymltest:
- npm run-script test -- --split=$CIRCLE_NODE_TOTAL --partition=`expr $CIRCLE_NODE_INDEX + 1`:
parallel: true
Timings per container

Store tests execution time

# circle.ymltest:
- npm run-script test -- --split=$CIRCLE_NODE_TOTAL --partition=`expr $CIRCLE_NODE_INDEX + 1` --silent -r "xunit":
parallel: true
# testem.js/* eslint-env node */
let options = {
test_page: 'tests/index.html?hidepassed',
disable_watching: true,
launch_in_ci: [
launch_in_dev: [
framework: 'qunit'

if (process.env.CIRCLE_TEST_REPORTS) {
options.report_file = process.env.CIRCLE_TEST_REPORTS + '/junit/test-results.xml'

module.exports = options;
Test Summary in CircleCI

Update your machine

Update browser used for running tests

# circle.ymldependencies:
- '~/downloads'
# download the latest Google Chrome if enabled by environmental variable $USE_LATEST_CHROME
- if [[ $USE_LATEST_CHROME == true ]]; then if test -f "$HOME/downloads/"; then sh $HOME/downloads/; else curl -o $HOME/downloads/ --create-dirs && bash $HOME/downloads/; fi; fi;

Let’s stop for a second

What’s next?



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store