blob: c9ec1c0718d7f5f26ee39e2f5e3abba8de8d6dd1 [file] [log] [blame]
// Copyright (c) 2013, 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.
part of unittest;
/**
* Describes the interface used by the unit test system for communicating the
* results of a test run.
*/
abstract class Configuration {
/**
* Creates an instance of [SimpleConfiguration].
*/
factory Configuration() => new SimpleConfiguration();
/**
* Creates an [Configuration] instances that does nothing.
*
* For use by subclasses which wish to implement only a subset of features.
*/
Configuration.blank();
/**
* If [true], tests are started automatically. Otherwise [runTests]
* must be called explicitly after tests are set up.
*/
bool get autoStart => true;
/**
* 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.
* It is also used to tell the vm or browser that tests are going to be run
* asynchronously and that the process should wait until they are done.
*/
void onInit() {}
/** Called as soon as the unittest framework starts running. */
void onStart() {}
/**
* Called when each test starts. Useful to show intermediate progress on
* a test suite.
*/
void onTestStart(TestCase testCase) {}
/**
* Called when each test is first completed. Useful to show intermediate
* progress on a test suite.
*/
void onTestResult(TestCase testCase) {}
/**
* Called when an already completed test changes state. For example: a test
* that was marked as passing may later be marked as being in error because
* it still had callbacks being invoked.
*/
void onTestResultChanged(TestCase testCase) {}
/**
* Handles the logging of messages by a test case.
*/
void onLogMessage(TestCase testCase, String message) {}
/**
* Called when the unittest framework is done running. [success] indicates
* whether all tests passed successfully.
*/
void onDone(bool success) {}
/**
* Called with the result of all test cases. Browser tests commonly override
* this to reformat the output.
*
* When [uncaughtError] is not null, it contains an error that occured outside
* of tests (e.g. setting up the test).
*/
void onSummary(int passed, int failed, int errors, List<TestCase> results,
String uncaughtError) {}
}