Line data Source code
1 : // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 : // for details. All rights reserved. Use of this source code is governed by a
3 : // BSD-style license that can be found in the LICENSE file.
4 :
5 : import 'package:stack_trace/stack_trace.dart';
6 :
7 : import 'group.dart';
8 : import 'group_entry.dart';
9 : import 'live_test.dart';
10 : import 'metadata.dart';
11 : import 'operating_system.dart';
12 : import 'suite.dart';
13 : import 'test_platform.dart';
14 :
15 : /// A single test.
16 : ///
17 : /// A test is immutable and stateless, which means that it can't be run
18 : /// directly. To run one, load a live version using [Test.load] and run it using
19 : /// [LiveTest.run].
20 : abstract class Test implements GroupEntry {
21 : String get name;
22 :
23 : Metadata get metadata;
24 :
25 : Trace get trace;
26 :
27 : /// Loads a live version of this test, which can be used to run it a single
28 : /// time.
29 : ///
30 : /// [suite] is the suite within which this test is being run. If [groups] is
31 : /// passed, it's the list of groups containing this test; otherwise, it
32 : /// defaults to just containing `suite.group`.
33 : LiveTest load(Suite suite, {Iterable<Group> groups});
34 :
35 : Test forPlatform(TestPlatform platform, {OperatingSystem os});
36 :
37 0 : Test filter(bool callback(Test test)) => callback(this) ? this : null;
38 : }
|