| Index: pkg/analysis_testing/lib/reflective_tests.dart
|
| diff --git a/pkg/analysis_testing/lib/reflective_tests.dart b/pkg/analysis_testing/lib/reflective_tests.dart
|
| index 2c737f7910d74df36c85d58208c30837eccd80af..ec293189682dd9dcef06763c2560fa95169727f9 100644
|
| --- a/pkg/analysis_testing/lib/reflective_tests.dart
|
| +++ b/pkg/analysis_testing/lib/reflective_tests.dart
|
| @@ -45,20 +45,26 @@ void runReflectiveTests(Type type) {
|
| return;
|
| }
|
| String memberName = MirrorSystem.getName(symbol);
|
| + wrapTest() {
|
| + var result = _runTest(classMirror, symbol);
|
| + if (result is Future) {
|
| + // We can't just return the future because of dartbug.com/20153. So
|
| + // use expectAsync() to ensure that the test doesn't end until the
|
| + // future completes. TODO(paulberry): get rid of this workaround once
|
| + // 20153 is fixed.
|
| + result.then(expectAsync((_) {}));
|
| + }
|
| + }
|
| // test_
|
| if (memberName.startsWith('test_')) {
|
| String testName = memberName.substring('test_'.length);
|
| - test(testName, () {
|
| - return _runTest(classMirror, symbol);
|
| - });
|
| + test(testName, wrapTest);
|
| return;
|
| }
|
| // solo_test_
|
| if (memberName.startsWith('solo_test_')) {
|
| String testName = memberName.substring('solo_test_'.length);
|
| - solo_test(testName, () {
|
| - return _runTest(classMirror, symbol);
|
| - });
|
| + solo_test(testName, wrapTest);
|
| }
|
| });
|
| }
|
|
|