diff --git a/test/all.dart b/test/all.dart
new file mode 100644
index 0000000..1c7afe6
--- /dev/null
+++ b/test/all.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2014, Google Inc. 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.
+
+library all_test;
+
+import 'benchmark_harness_test.dart' as benchmark_harness_test;
+import 'result_emitter_test.dart' as result_emitter_test;
+
+void main() {
+  benchmark_harness_test.main();
+  result_emitter_test.main();
+}
diff --git a/test/benchmark_harness_test.dart b/test/benchmark_harness_test.dart
new file mode 100644
index 0000000..ae06e7a
--- /dev/null
+++ b/test/benchmark_harness_test.dart
@@ -0,0 +1,29 @@
+// Copyright (c) 2014, Google Inc. 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.
+
+library benchmark_harness_test;
+
+import 'package:benchmark_harness/benchmark_harness.dart';
+import 'package:unittest/unittest.dart';
+
+void main() {
+  group('benchmark_harness', () {
+    test('run is called', () {
+      MockBenchmark benchmark = new MockBenchmark();
+      double micros = benchmark.measure();
+      expect(micros, isPositive);
+      expect(benchmark.runCount, isPositive);
+    });
+  });
+}
+
+class MockBenchmark extends BenchmarkBase {
+  int runCount = 0;
+
+  MockBenchmark() : super('mock benchmark');
+
+  void run() {
+    runCount++;
+  }
+}
diff --git a/test/drone.sh b/test/drone.sh
new file mode 100755
index 0000000..011d231
--- /dev/null
+++ b/test/drone.sh
@@ -0,0 +1,11 @@
+# get the packages
+pub install
+
+# analyze the code
+dartanalyzer example/Template.dart
+dartanalyzer lib/benchmark_harness.dart
+dartanalyzer test/all.dart
+dartanalyzer test/benchmark_harness_test.dart
+
+# run the tests
+dart test/all.dart
diff --git a/test/fixed-unittest.dart b/test/fixed-unittest.dart
index 2c1ed53..4f8951c 100644
--- a/test/fixed-unittest.dart
+++ b/test/fixed-unittest.dart
@@ -1,4 +1,4 @@
-library unittest;
+library fixed_unittest;
 
 import 'package:unittest/unittest.dart';
 
diff --git a/test/result_emitter_test.dart b/test/result_emitter_test.dart
index 4975835..d08d06f 100644
--- a/test/result_emitter_test.dart
+++ b/test/result_emitter_test.dart
@@ -1,9 +1,9 @@
-library remote;
+library result_emitter_test;
+
+import 'package:benchmark_harness/benchmark_harness.dart';
+import 'package:unittest/mock.dart';
 
 import 'fixed-unittest.dart';
-import 'package:unittest/mock.dart';
-import 'package:benchmark_harness/benchmark_harness.dart';
-
 
 void main() {
   benchmarkHarnessTest();
@@ -19,6 +19,9 @@
   void fakeEmit(String name, double value) {
     hasEmitted = true;
   }
+
+  // Added to quiet an analyzer warning.
+  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
 }
 
 // Create a new benchmark which has an emitter.
@@ -46,4 +49,4 @@
       emitter.getLogs(callsTo('emit')).verify(happenedOnce);
     });
   });
-}
\ No newline at end of file
+}
