diff --git a/lib/tools/expression_extractor.dart b/lib/tools/expression_extractor.dart
index b98ea1a35..d82d78161 100644
--- a/lib/tools/expression_extractor.dart
+++ b/lib/tools/expression_extractor.dart
@@ -11,6 +11,7 @@ import 'package:angular/tools/common.dart';
 import 'package:di/di.dart';
 import 'package:di/dynamic_injector.dart';
 import 'package:angular/tools/parser_generator/generator.dart';
+import 'package:angular/core/parser/parser.dart';
 
 main(args) {
   if (args.length < 5) {
@@ -48,7 +49,10 @@ main(args) {
   }
 
   printer.printSrc('// Found ${expressions.length} expressions');
-  Module module = new Module()..value(SourcePrinter, printer);
+  Module module = new Module()
+    ..type(Parser, implementedBy: DynamicParser)
+    ..type(ParserBackend, implementedBy: DynamicParserBackend)
+    ..value(SourcePrinter, printer);
   Injector injector =
       new DynamicInjector(modules: [module], allowImplicitInjection: true);
 
diff --git a/run-test.sh b/run-test.sh
index 513ca5abb..1bb171ff4 100755
--- a/run-test.sh
+++ b/run-test.sh
@@ -1,5 +1,7 @@
 #!/bin/sh
 
+set -e
+
 # OS-specific Dartium path defaults
 case $( uname -s ) in
   Darwin)
@@ -30,6 +32,9 @@ dart --version
 # run io tests
 dart --checked test/io/all.dart
 
+# run expression extractor tests
+scripts/test-expression-extractor.sh
+
 ./analyze.sh &&
   node_modules/jasmine-node/bin/jasmine-node playback_middleware/spec/ &&
   node "node_modules/karma/bin/karma" start karma.conf \