File tree Expand file tree Collapse file tree 2 files changed +32
-3
lines changed Expand file tree Collapse file tree 2 files changed +32
-3
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ import 'dart:io';
8
8
import 'package:args/args.dart' ;
9
9
10
10
import '../core.dart' ;
11
+ import '../experiments.dart' ;
11
12
import '../sdk.dart' ;
12
13
13
14
class TestCommand extends DartdevCommand <int > {
@@ -42,9 +43,15 @@ class TestCommand extends DartdevCommand<int> {
42
43
@override
43
44
FutureOr <int > run () async {
44
45
final command = sdk.pub;
45
- final args = argResults.arguments.toList ();
46
-
47
- args.insertAll (0 , ['run' , 'test' ]);
46
+ final testArgs = argResults.arguments.toList ();
47
+
48
+ final args = [
49
+ 'run' ,
50
+ if (wereExperimentsSpecified)
51
+ '--$experimentFlagName =${specifiedExperiments .join (',' )}' ,
52
+ 'test' ,
53
+ ...testArgs,
54
+ ];
48
55
49
56
log.trace ('$command ${args .join (' ' )}' );
50
57
Original file line number Diff line number Diff line change @@ -65,4 +65,26 @@ void main() {
65
65
expect (result.stdout, contains ('All tests passed!' ));
66
66
expect (result.stderr, isEmpty);
67
67
}, skip: 'https://github.com/dart-lang/sdk/issues/40854' );
68
+
69
+ test ('--enable-experiment' , () {
70
+ p = project (mainSrc: 'int get foo => 1;\n ' );
71
+ p.file ('test/foo_test.dart' , '''
72
+ import 'package:test/test.dart';
73
+
74
+ void main() {
75
+ test('', () {
76
+ int a;
77
+ a = null;
78
+ print('a is \$ a.');
79
+ });
80
+ }
81
+ ''' );
82
+
83
+ var result = p.runSync ('pub' , ['get' , '--offline' ]);
84
+ expect (result.exitCode, 0 );
85
+
86
+ result = p.runSync ('--enable-experiment=non-nullable' ,
87
+ ['test' , '--no-color' , '--reporter' , 'expanded' ]);
88
+ expect (result.exitCode, 1 );
89
+ }, skip: 'https://github.com/dart-lang/sdk/issues/40854' );
68
90
}
You can’t perform that action at this time.
0 commit comments