diff --git a/.travis.yml b/.travis.yml
index b6f36c35..52477c67 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -39,9 +39,6 @@ install:
   - npm install
   - bower install
 
-before_script:
-  - ruby ci/prepare_testem.rb
-
 script:
   - ember try $EMBER_VERSION
 
diff --git a/bower.json b/bower.json
index 42626fb9..b18cab6c 100644
--- a/bower.json
+++ b/bower.json
@@ -2,7 +2,7 @@
   "name": "travis",
   "dependencies": {
     "ember": "2.2.1",
-    "ember-cli-shims": "0.1.0",
+    "ember-cli-shims": "0.1.1",
     "ember-cli-test-loader": "0.2.2",
     "ember-load-initializers": "0.1.7",
     "ember-qunit": "0.4.16",
diff --git a/ci/prepare_testem.rb b/ci/prepare_testem.rb
deleted file mode 100644
index ec9d7a69..00000000
--- a/ci/prepare_testem.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-require 'json'
-
-pull_request = ENV['TRAVIS_PULL_REQUEST'] != 'false'
-
-testem = JSON.parse(File.read('testem.json'))
-
-testem['launch_in_ci'] = ['PhantomJS']
-testem['launch_in_ci'] = ['SL_chrome', 'SL_firefox'] unless pull_request
-
-File.open('testem.json', 'w') { |f| f.write testem.to_json }
diff --git a/package.json b/package.json
index 3f9a4434..557cf796 100644
--- a/package.json
+++ b/package.json
@@ -20,37 +20,37 @@
   "license": "MIT",
   "devDependencies": {
     "active-model-adapter": "2.0.3",
-    "broccoli-asset-rev": "^2.2.0",
+    "broccoli-asset-rev": "^2.4.2",
     "broccoli-sass": "0.6.6",
     "ember-ajax": "0.7.1",
-    "ember-cli": "^2.3.0",
+    "ember-cli": "^2.4.3",
     "ember-cli-app-version": "^1.0.0",
     "ember-cli-autoprefixer": "^0.5.0",
-    "ember-cli-babel": "^5.1.5",
+    "ember-cli-babel": "^5.1.6",
     "ember-cli-dependency-checker": "^1.2.0",
     "ember-cli-deprecation-workflow": "0.1.6",
     "ember-cli-document-title": "0.2.0",
-    "ember-cli-htmlbars": "^1.0.1",
+    "ember-cli-htmlbars": "^1.0.3",
     "ember-cli-htmlbars-inline-precompile": "^0.3.1",
-    "ember-cli-inject-live-reload": "^1.3.1",
+    "ember-cli-inject-live-reload": "^1.4.0",
     "ember-cli-inline-images": "^0.0.4",
     "ember-cli-mirage": "0.2.0-beta.7",
     "ember-cli-page-object": "1.0.0",
     "ember-cli-pendo": "drogus/ember-cli-pendo",
     "ember-cli-pretender": "0.3.1",
-    "ember-cli-qunit": "^1.2.1",
+    "ember-cli-qunit": "^1.4.0",
     "ember-cli-release": "0.2.8",
     "ember-cli-sauce": "^1.1.0",
-    "ember-cli-sri": "^2.0.0",
+    "ember-cli-sri": "^2.1.0",
     "ember-cli-uglify": "^1.2.0",
     "ember-data": "^2.3.0",
     "ember-data-filter": "1.13.0",
     "ember-disable-proxy-controllers": "^1.0.1",
-    "ember-export-application-global": "^1.0.4",
-    "ember-load-initializers": "^0.5.0",
+    "ember-export-application-global": "^1.0.5",
+    "ember-load-initializers": "^0.5.1",
     "ember-resolver": "^2.0.3",
     "ember-try": "0.0.7",
     "emberx-select": "2.0.2",
-    "loader.js": "^4.0.0"
+    "loader.js": "^4.0.1"
   }
 }
diff --git a/public/crossdomain.xml b/public/crossdomain.xml
index 29a035d7..0c16a7a0 100644
--- a/public/crossdomain.xml
+++ b/public/crossdomain.xml
@@ -1,15 +1,15 @@
 <?xml version="1.0"?>
 <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
 <cross-domain-policy>
-    <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
+  <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
 
-    <!-- Most restrictive policy: -->
-    <site-control permitted-cross-domain-policies="none"/>
+  <!-- Most restrictive policy: -->
+  <site-control permitted-cross-domain-policies="none"/>
 
-    <!-- Least restrictive policy: -->
-    <!--
-    <site-control permitted-cross-domain-policies="all"/>
-    <allow-access-from domain="*" to-ports="*" secure="false"/>
-    <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
-    -->
+  <!-- Least restrictive policy: -->
+  <!--
+  <site-control permitted-cross-domain-policies="all"/>
+  <allow-access-from domain="*" to-ports="*" secure="false"/>
+  <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
+  -->
 </cross-domain-policy>
diff --git a/testem.json b/testem.js
similarity index 77%
rename from testem.json
rename to testem.js
index e5e2046a..75b5735a 100644
--- a/testem.json
+++ b/testem.js
@@ -1,9 +1,17 @@
-{
+/*jshint node:true*/
+
+var launchInCI = function() {
+  if (!process.env.TRAVIS || process.env.TRAVIS_PULL_REQUEST) {
+    return ['PhantomJS'];
+  } else {
+    return ['SL_chrome', 'SL_firefox'];
+  }
+};
+
+module.exports = {
   "framework": "qunit",
   "test_page": "tests/index.html?hidepassed",
-  "launch_in_ci": [
-    "PhantomJS"
-  ],
+  "launch_in_ci": launchInCI(),
   "launch_in_dev": [
     "PhantomJS"
   ],