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

Unified Diff: lib/src/test_environment.dart

Issue 869043002: Clean up unittest a bunch. (Closed) Base URL: git@github.com:dart-lang/unittest@master
Patch Set: Code review changes Created 5 years, 11 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
« no previous file with comments | « lib/src/test_case.dart ('k') | lib/unittest.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/test_environment.dart
diff --git a/lib/src/test_environment.dart b/lib/src/test_environment.dart
index ebb39bdc5e4ab087ae00b2a3439754810e49a332..6c205a9f1c9a891b2dfeb1d4eb909d1907280a0d 100644
--- a/lib/src/test_environment.dart
+++ b/lib/src/test_environment.dart
@@ -2,21 +2,44 @@
// 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;
+library unittest.test_environment;
-/// Class for encapsulating test environment state.
+import 'dart:async';
+
+import 'configuration.dart';
+import 'group_context.dart';
+import 'internal_test_case.dart';
+
+/// The default unittest environment.
+final _defaultEnvironment = new TestEnvironment();
+
+/// The current unittest environment.
+TestEnvironment get environment {
+ var environment = Zone.current[#unittest.environment];
+ return environment == null ? _defaultEnvironment : environment;
+}
+
+// The current environment's configuration.
+Configuration get config => environment.config;
+
+/// Encapsulates the state of the test environment.
///
/// This is used by the [withTestEnvironment] method to support multiple
/// invocations of the unittest library within the same application
/// instance.
-class _TestEnvironment {
+class TestEnvironment {
+ /// The environment's configuration.
Configuration config;
- // We use a 'dummy' context for the top level to eliminate null
- // checks when querying the context. This allows us to easily
- // support top-level [setUp]/[tearDown] functions as well.
- final rootContext = new _GroupContext();
- _GroupContext currentContext;
+ /// The top-level group context.
+ ///
+ /// We use a 'dummy' context for the top level to eliminate null checks when
+ /// querying the context. This allows us to easily support top-level
+ /// [setUp]/[tearDown] functions as well.
+ final rootContext = new GroupContext.root();
+
+ /// The current group context.
+ GroupContext currentContext;
/// The [currentTestCaseIndex] represents the index of the currently running
/// test case.
@@ -33,22 +56,19 @@ class _TestEnvironment {
/// The time since we last gave asynchronous code a chance to be scheduled.
int lastBreath = new DateTime.now().millisecondsSinceEpoch;
- /// The set of tests to run can be restricted by using [solo_test] and
- /// [solo_group].
- ///
- /// As groups can be nested we use a counter to keep track of the nesting
- /// level of soloing, and a flag to tell if we have seen any solo tests.
+ /// The number of [solo_group]s deep we are currently.
int soloNestingLevel = 0;
+
+ /// Whether we've seen a [solo_test].
bool soloTestSeen = false;
/// The list of test cases to run.
- final List<TestCase> testCases = new List<TestCase>();
+ final testCases = new List<InternalTestCase>();
- /// The [uncaughtErrorMessage] holds the error messages that are printed
- /// in the test summary.
+ /// The error message that is printed in the test summary.
String uncaughtErrorMessage;
- _TestEnvironment() {
+ TestEnvironment() {
currentContext = rootContext;
}
}
« no previous file with comments | « lib/src/test_case.dart ('k') | lib/unittest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698