Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(582)

Unified Diff: lib/unittest/config.dart

Issue 10031022: step 1 in making unittest platform independent. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/unittest/config.dart
diff --git a/lib/unittest/config.dart b/lib/unittest/config.dart
new file mode 100644
index 0000000000000000000000000000000000000000..9507b508f92f8ad9dcb93bce14a37ceae4e88baa
--- /dev/null
+++ b/lib/unittest/config.dart
@@ -0,0 +1,65 @@
+// Copyright (c) 2011, 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.
+
+/**
+ * Hooks to configure the unittest library for different platforms. This class
+ * implements the API in a platform-independent way. Tests that want to take
+ * advantage of the platform can create a subclass and override methods from
+ * this class.
+ */
+class Configuration {
+ /**
+ * Called as soon as the unittest framework becomes initialized. This is done
+ * even before tests are added to the test framework. It might be used to
+ * determine/debug errors that occur before the test harness starts executing.
+ */
+ void onInit() {}
+
+ /**
+ * Called as soon as the unittest framework starts running. Used commonly to
+ * tell the vm or browser that tests are still running and the process should
+ * wait until they are done.
+ */
+ void onStart() {}
+
+ /**
+ * Called when each test is completed. Useful to show intermediate progress on
+ * a test suite.
+ */
+ void onTestResult(TestCase testCase) {}
+
+ /**
+ * Called with the result of all test cases. The default implementation prints
+ * the result summary using the built-in [print] command. Browser tests
+ * commonly override this to reformat the output.
+ */
+ void onDone(int passed, int failed, int errors, List<TestCase> results) {
+ // Print each test's result.
+ for (final test in _tests) {
+ print('${test.result.toUpperCase()}: ${test.description}');
+
+ if (test.message != '') {
+ print(' ${test.message}');
+ }
+ }
+
+ // Show the summary.
+ print('');
+
+ var success = false;
+ if (passed == 0 && failed == 0 && errors == 0) {
+ print('No tests found.');
+ // This is considered a failure too: if this happens you probably have a
+ // bug in your unit tests.
+ } else if (failed == 0 && errors == 0) {
+ print('All $passed tests passed.');
+ success = true;
+ } else {
+ print('$passed PASSED, $failed FAILED, $errors ERRORS');
+ }
+
+ // An exception is used by the test infrastructure to detect failure.
+ if (!success) throw new Exception("Some tests failed.");
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698