diff --git a/.gitignore b/.gitignore
index 25a1df3..98d6d21 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
 .DS_Store
 .idea
 .pub/
+.dart_tool/
 .settings/
 build/
 packages
diff --git a/.travis.yml b/.travis.yml
index a31bd64..b4d1316 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,17 +1,54 @@
+
 language: dart
 
-dart:
-  - dev
+# Gives more resources on Travis (8GB Ram, 2 CPUs).
+# Do not remove without verifying w/ Travis.
+sudo: required
+addons:
+  chrome: stable
 
-dart_task:
-  - test: --platform vm
-  - test: --platform firefox -j 1
-  - dartanalyzer
-  - dartfmt
+# Build stages: https://docs.travis-ci.com/user/build-stages/.
+stages:
+  - presubmit
+  - build
+  - testing
 
+# 1. Run dartfmt, dartanalyzer, pub run test (VM).
+# 2. Then run a build.
+# 3. Then run tests compiled via dartdevc and dart2js.
+jobs:
+  include:
+    - stage: presubmit
+      script: ./tool/travis.sh dartfmt
+      dart: dev
+    - stage: presubmit
+      script: ./tool/travis.sh dartanalyzer
+      dart: dev
+    - stage: build
+      script: ./tool/travis.sh dartdevc_build
+      dart: dev
+    - stage: testing
+      script: ./tool/travis.sh vm_test
+      dart: dev
+    - stage: testing
+      script: ./tool/travis.sh dartdevc_test
+      dart: dev
+    - stage: testing
+      script: ./tool/travis.sh dart2js_test
+      dart: dev
+
+# Only building master means that we don't run two builds for each pull request.
 branches:
   only: [master]
 
+# Incremental pub cache and builds.
 cache:
   directories:
     - $HOME/.pub-cache
+    - .dart_tool
+
+# Necessary for Chrome and Firefox to run
+before_install:
+ - export DISPLAY=:99.0
+ - sh -e /etc/init.d/xvfb start
+ - "t=0; until (xdpyinfo -display :99 &> /dev/null || test $t -gt 10); do sleep 1; let t=$t+1; done"
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6f5e0ea..e88abc6 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -20,10 +20,19 @@
 ### Code reviews
 All submissions, including submissions by project members, require review.
 
+### Presubmit testing
+* All code must pass analysis by the `dartanalyzer` (`dartanalyzer --fatal-warnings .`)
+* All code must be formatted by `dartfmt` (`dartfmt -w .`)
+  * _NOTE_: We currently require formatting by the `dev` channel SDK.
+* All code must pass unit tests for the VM, Dart2JS, and DartDevC (`pub run build_runner test`).
+  * _NOTE_: We currently use `build_runner` for compilation with DartDevC. It's
+    possible to run only Dart2JS and the VM without it using `pub run test`
+    directly.
+
 ### File headers
 All files in the project must start with the following header.
 
-    // Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+    // Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
     // for details. All rights reserved. Use of this source code is governed by a
     // BSD-style license that can be found in the LICENSE file.
 
diff --git a/dart_test.yaml b/dart_test.yaml
new file mode 100644
index 0000000..d2b9d1d
--- /dev/null
+++ b/dart_test.yaml
@@ -0,0 +1,22 @@
+presets:
+  # When run with -P travis, we have different settings/options.
+  #
+  # 1: We don't use Chrome --headless:
+  # 2: We use --reporter expanded
+  # 3: We skip anything tagged "fails-on-travis".
+  travis:
+    # TODO(https://github.com/dart-lang/test/issues/772)
+    override_platforms:
+      chrome:
+        settings:
+          headless: false
+
+    # Don't run any tests that are tagged ["fails-on-travis"].
+    exclude_tags: "fails-on-travis"
+
+    # https://github.com/dart-lang/test/blob/master/doc/configuration.md#reporter
+    reporter: expanded
+
+platforms:
+  - chrome
+  - vm
diff --git a/pubspec.yaml b/pubspec.yaml
index 972f6c6..6384585 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -9,4 +9,7 @@
   sdk: '>=2.0.0-dev.22.0 <2.0.0'
 
 dev_dependencies:
-  test: '^0.12.0'
+  build_runner: ^0.7.11
+  build_test: ^0.10.0
+  build_web_compilers: ^0.3.1
+  test: ^0.12.0
diff --git a/test/queue_list_test.dart b/test/queue_list_test.dart
index 9e6d199..eeb9a46 100644
--- a/test/queue_list_test.dart
+++ b/test/queue_list_test.dart
@@ -262,7 +262,7 @@
 
 /// Returns a queue whose internal tail has a lower index than its head.
 QueueList withInternalGap() {
-  var queue = new QueueList.from([null, null, null, null, 1, 2, 3, 4]);
+  var queue = new QueueList.from(<dynamic>[null, null, null, null, 1, 2, 3, 4]);
   for (var i = 0; i < 4; i++) {
     queue.removeFirst();
   }
diff --git a/test/typed_wrapper/iterable_test.dart b/test/typed_wrapper/iterable_test.dart
index 5de9651..a7662d1 100644
--- a/test/typed_wrapper/iterable_test.dart
+++ b/test/typed_wrapper/iterable_test.dart
@@ -350,5 +350,5 @@
         expect(wrapper.toString(), equals("(foo, bar, baz)"));
       });
     });
-  }, skip: "Re-enable this when test can run DDC (test#414).");
+  }, skip: isDart2 ? false : 'Requires a Dart2 runtime');
 }
diff --git a/test/typed_wrapper/list_test.dart b/test/typed_wrapper/list_test.dart
index 7876dbe..fcb784a 100644
--- a/test/typed_wrapper/list_test.dart
+++ b/test/typed_wrapper/list_test.dart
@@ -417,5 +417,5 @@
         expect(inner, equals(["bar", "baz", "foo"]));
       });
     });
-  }, skip: "Re-enable this when test can run DDC (test#414).");
+  }, skip: isDart2 ? false : 'Requires a Dart2 runtime');
 }
diff --git a/test/typed_wrapper/map_test.dart b/test/typed_wrapper/map_test.dart
index 75078bd..96ccf17 100644
--- a/test/typed_wrapper/map_test.dart
+++ b/test/typed_wrapper/map_test.dart
@@ -223,7 +223,7 @@
             ]));
       });
     });
-  }, skip: "Re-enable this when test can run DDC (test#414).");
+  }, skip: isDart2 ? false : 'Requires a Dart2 runtime');
 
   group("with invalid value types", () {
     Map inner;
@@ -323,5 +323,5 @@
             ]));
       });
     });
-  }, skip: "Re-enable this when test can run DDC (test#414).");
+  }, skip: isDart2 ? false : 'Requires a Dart2 runtime');
 }
diff --git a/test/typed_wrapper/queue_test.dart b/test/typed_wrapper/queue_test.dart
index e9ffb3a..0a716fe 100644
--- a/test/typed_wrapper/queue_test.dart
+++ b/test/typed_wrapper/queue_test.dart
@@ -137,5 +137,5 @@
         expect(wrapper, isEmpty);
       });
     });
-  }, skip: "Re-enable this when test can run DDC (test#414).");
+  }, skip: isDart2 ? false : 'Requires a Dart2 runtime');
 }
diff --git a/test/typed_wrapper/set_test.dart b/test/typed_wrapper/set_test.dart
index d7eed5f..37e3cd3 100644
--- a/test/typed_wrapper/set_test.dart
+++ b/test/typed_wrapper/set_test.dart
@@ -169,5 +169,5 @@
         expect(inner, unorderedEquals(["foo", "baz"]));
       });
     });
-  }, skip: "Re-enable this when test can run DDC (test#414).");
+  }, skip: isDart2 ? false : 'Requires a Dart2 runtime');
 }
diff --git a/test/utils.dart b/test/utils.dart
index d8ab082..73926a3 100644
--- a/test/utils.dart
+++ b/test/utils.dart
@@ -5,3 +5,13 @@
 import "package:test/test.dart";
 
 final Matcher throwsCastError = throwsA(new isInstanceOf<CastError>());
+
+/// A hack to determine whether we are running in a Dart 2 runtime.
+final bool isDart2 = _isTypeArgString('');
+bool _isTypeArgString<T>(T arg) {
+  try {
+    return T == String;
+  } catch (_) {
+    return false;
+  }
+}
diff --git a/tool/travis.sh b/tool/travis.sh
new file mode 100755
index 0000000..0e584b9
--- /dev/null
+++ b/tool/travis.sh
@@ -0,0 +1,65 @@
+# Copyright 2018 the Dart project authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#!/bin/bash
+
+if [ "$#" == "0" ]; then
+  echo -e '\033[31mAt least one task argument must be provided!\033[0m'
+  exit 1
+fi
+
+EXIT_CODE=0
+
+while (( "$#" )); do
+  TASK=$1
+  case $TASK in
+  dartfmt) echo
+    echo -e '\033[1mTASK: dartfmt\033[22m'
+    echo -e 'dartfmt -n --set-exit-if-changed .'
+    dartfmt -n --set-exit-if-changed . || EXIT_CODE=$?
+    ;;
+  dartanalyzer) echo
+    echo -e '\033[1mTASK: dartanalyzer\033[22m'
+    echo -e 'dartanalyzer --fatal-warnings .'
+    dartanalyzer --fatal-warnings . || EXIT_CODE=$?
+    ;;
+  vm_test) echo
+    echo -e '\033[1mTASK: vm_test\033[22m'
+    echo -e 'pub run test -P travis -p vm -x requires-dart2'
+    pub run test -p vm || EXIT_CODE=$?
+    ;;
+  dartdevc_build) echo
+    echo -e '\033[1mTASK: build\033[22m'
+    echo -e 'pub run build_runner build --fail-on-severe'
+    pub run build_runner build --fail-on-severe || EXIT_CODE=$?
+    ;;
+  dartdevc_test) echo
+    echo -e '\033[1mTASK: dartdevc_test\033[22m'
+    echo -e 'pub run build_runner test -- -P travis -p chrome'
+    pub run build_runner test -- -p chrome || EXIT_CODE=$?
+    ;;
+  dart2js_test) echo
+    echo -e '\033[1mTASK: dart2js_test\033[22m'
+    echo -e 'pub run test -P travis -p chrome -x requires-dart2'
+    pub run test -p chrome || EXIT_CODE=$?
+    ;;
+  *) echo -e "\033[31mNot expecting TASK '${TASK}'. Error!\033[0m"
+    EXIT_CODE=1
+    ;;
+  esac
+
+  shift
+done
+
+exit $EXIT_CODE
