@@ -45,6 +45,9 @@ const expectedTestUsage = [
4545 ' --force-ansi Whether to force ansi output. If not specified, it will maintain the default behavior based on stdout and stderr.\n '
4646 ' --report-on=<lib/> An optional file path to report coverage information to. This should be a path relative to the current working directory.\n '
4747 ' --platform=<chrome|vm> The platform to run tests on. \n '
48+ ' --run-skipped Run skipped tests instead of skipping them.\n '
49+ ' --[no-]check-ignore Whether to check for and respect coverage ignore comments (e.g. // coverage:ignore-line).\n '
50+ ' (defaults to on)\n '
4851 '\n '
4952 'Run "very_good help" to see global options.' ,
5053];
@@ -56,10 +59,11 @@ abstract class DartTestCommandCall {
5659 Future <List <int >> call ({
5760 String cwd = '.' ,
5861 bool recursive = false ,
62+ bool checkIgnore = true ,
63+ bool showUncovered = false ,
5964 bool collectCoverage = false ,
6065 bool optimizePerformance = false ,
6166 double ? minCoverage,
62- bool showUncovered = false ,
6367 String ? excludeFromCoverage,
6468 CoverageCollectionMode collectCoverageFrom = CoverageCollectionMode .imports,
6569 String ? randomSeed,
@@ -102,10 +106,11 @@ void main() {
102106 () => dartTest (
103107 cwd: any (named: 'cwd' ),
104108 recursive: any (named: 'recursive' ),
109+ checkIgnore: any (named: 'checkIgnore' ),
110+ showUncovered: any (named: 'showUncovered' ),
105111 collectCoverage: any (named: 'collectCoverage' ),
106112 optimizePerformance: any (named: 'optimizePerformance' ),
107113 minCoverage: any (named: 'minCoverage' ),
108- showUncovered: any (named: 'showUncovered' ),
109114 excludeFromCoverage: any (named: 'excludeFromCoverage' ),
110115 collectCoverageFrom: any (named: 'collectCoverageFrom' ),
111116 randomSeed: any (named: 'randomSeed' ),
@@ -120,8 +125,10 @@ void main() {
120125 when < dynamic > (() => argResults['concurrency' ]).thenReturn (concurrency);
121126 when < dynamic > (() => argResults['recursive' ]).thenReturn (false );
122127 when < dynamic > (() => argResults['coverage' ]).thenReturn (false );
128+ when < dynamic > (() => argResults['check-ignore' ]).thenReturn (true );
123129 when < dynamic > (() => argResults['show-uncovered' ]).thenReturn (false );
124130 when < dynamic > (() => argResults['fail-fast' ]).thenReturn (false );
131+ when < dynamic > (() => argResults['run-skipped' ]).thenReturn (false );
125132 when < dynamic > (() => argResults['optimization' ]).thenReturn (true );
126133 when < dynamic > (() => argResults['platform' ]).thenReturn (null );
127134 when < dynamic > (
@@ -222,6 +229,7 @@ void main() {
222229 logger: any (named: 'logger' ),
223230 stdout: any (named: 'stdout' ),
224231 stderr: any (named: 'stderr' ),
232+ checkIgnore: any (named: 'checkIgnore' ),
225233 ),
226234 ).thenAnswer (
227235 (_) async => [ExitCode .success.code, ExitCode .unavailable.code],
@@ -495,6 +503,7 @@ void main() {
495503 logger: any (named: 'logger' ),
496504 stdout: any (named: 'stdout' ),
497505 stderr: any (named: 'stderr' ),
506+ checkIgnore: any (named: 'checkIgnore' ),
498507 ),
499508 ).thenThrow (exception);
500509 final result = await testCommand.run ();
@@ -540,6 +549,7 @@ void main() {
540549 logger: any (named: 'logger' ),
541550 stdout: any (named: 'stdout' ),
542551 stderr: any (named: 'stderr' ),
552+ checkIgnore: any (named: 'checkIgnore' ),
543553 ),
544554 ).thenThrow (exception);
545555 final result = await testCommand.run ();
@@ -574,6 +584,7 @@ void main() {
574584 logger: any (named: 'logger' ),
575585 stdout: any (named: 'stdout' ),
576586 stderr: any (named: 'stderr' ),
587+ checkIgnore: any (named: 'checkIgnore' ),
577588 ),
578589 ).thenThrow (exception);
579590 final result = await testCommand.run ();
@@ -654,6 +665,7 @@ void main() {
654665 logger: any (named: 'logger' ),
655666 stdout: any (named: 'stdout' ),
656667 stderr: any (named: 'stderr' ),
668+ checkIgnore: any (named: 'checkIgnore' ),
657669 ),
658670 ).thenThrow (exception);
659671 final result = await testCommand.run ();
@@ -732,5 +744,36 @@ void main() {
732744 ).called (1 );
733745 },
734746 );
747+
748+ test ('completes normally --run-skipped' , () async {
749+ when < dynamic > (() => argResults['run-skipped' ]).thenReturn (true );
750+ final result = await testCommand.run ();
751+ expect (result, equals (ExitCode .success.code));
752+ verify (
753+ () => dartTest (
754+ optimizePerformance: true ,
755+ arguments: ['--run-skipped' , ...defaultArguments],
756+ logger: logger,
757+ stdout: logger.write,
758+ stderr: logger.err,
759+ ),
760+ ).called (1 );
761+ });
762+
763+ test ('completes normally --no-check-ignore' , () async {
764+ when < dynamic > (() => argResults['check-ignore' ]).thenReturn (false );
765+ final result = await testCommand.run ();
766+ expect (result, equals (ExitCode .success.code));
767+ verify (
768+ () => dartTest (
769+ optimizePerformance: true ,
770+ arguments: defaultArguments,
771+ logger: logger,
772+ stdout: logger.write,
773+ stderr: logger.err,
774+ checkIgnore: false ,
775+ ),
776+ ).called (1 );
777+ });
735778 });
736779}
0 commit comments