Index: lib/src/runner/console_reporter.dart |
diff --git a/lib/src/runner/console_reporter.dart b/lib/src/runner/console_reporter.dart |
index e5eaa311326cdcec1e986bf85f9106bc8c00528f..4680146b2dbe922d058740e25d5f603422f13703 100644 |
--- a/lib/src/runner/console_reporter.dart |
+++ b/lib/src/runner/console_reporter.dart |
@@ -10,22 +10,9 @@ import 'dart:io'; |
import '../backend/live_test.dart'; |
import '../backend/state.dart'; |
import '../backend/suite.dart'; |
-import '../util/io.dart'; |
import '../utils.dart'; |
import 'engine.dart'; |
-/// The terminal escape for green text, or the empty string if this is Windows |
-/// or not outputting to a terminal. |
-final _green = getSpecial('\u001b[32m'); |
- |
-/// The terminal escape for red text, or the empty string if this is Windows or |
-/// not outputting to a terminal. |
-final _red = getSpecial('\u001b[31m'); |
- |
-/// The terminal escape for removing test coloring, or the empty string if this |
-/// is Windows or not outputting to a terminal. |
-final _noColor = getSpecial('\u001b[0m'); |
- |
/// The maximum console line length. |
/// |
/// Lines longer than this will be cropped. |
@@ -34,6 +21,18 @@ const _lineLength = 100; |
/// A reporter that prints test results to the console in a single |
/// continuously-updating line. |
class ConsoleReporter { |
+ /// The terminal escape for green text, or the empty string if this is Windows |
+ /// or not outputting to a terminal. |
+ final String _green; |
+ |
+ /// The terminal escape for red text, or the empty string if this is Windows |
+ /// or not outputting to a terminal. |
+ final String _red; |
+ |
+ /// The terminal escape for removing test coloring, or the empty string if |
+ /// this is Windows or not outputting to a terminal. |
+ final String _noColor; |
+ |
/// The engine used to run the tests. |
final Engine _engine; |
@@ -59,10 +58,15 @@ class ConsoleReporter { |
String _lastProgressMessage; |
/// Creates a [ConsoleReporter] that will run all tests in [suites]. |
- ConsoleReporter(Iterable<Suite> suites) |
+ /// |
+ /// If [color] is `true`, this will use terminal colors; if it's `false`, it |
+ /// won't. |
+ ConsoleReporter(Iterable<Suite> suites, {bool color: true}) |
: _multipleSuites = suites.length > 1, |
- _engine = new Engine(suites) { |
- |
+ _engine = new Engine(suites), |
+ _green = color ? '\u001b[32m' : '', |
+ _red = color ? '\u001b[31m' : '', |
+ _noColor = color ? '\u001b[0m' : '' { |
_engine.onTestStarted.listen((liveTest) { |
_progressLine(_description(liveTest)); |
liveTest.onStateChange.listen((state) { |