Skip to content

Commit 5976b3a

Browse files
authored
Merge pull request #7 from QuirijnGB/test-command
Add test command
2 parents 43df7c8 + e4d2944 commit 5976b3a

File tree

5 files changed

+40
-3
lines changed

5 files changed

+40
-3
lines changed

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ Available commands:
4747
exec Execute any command.
4848
fmt Run formatter.
4949
pub Run pub.
50-
pubspec Update pubspec.yaml
50+
pubspec Update pubspec.yaml.
51+
test Run tests.
5152
```
5253

5354
`pubspec` has 3 subcommands:

bin/multipack.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import "dart:io";
22

33
import "package:args/command_runner.dart";
4-
import "package:multipack/package.dart";
54
import "package:multipack/commands.dart";
5+
import "package:multipack/package.dart";
66

77
void main(List<String> arguments) async {
88
final dependencyGraph = await getPackageGraph(Directory.current);
@@ -51,6 +51,7 @@ void main(List<String> arguments) async {
5151
runner.addCommand(AnalyzeCommand(orderedPackages));
5252
runner.addCommand(ExecCommand(orderedPackages));
5353
runner.addCommand(PubspecCommand(orderedPackages));
54+
runner.addCommand(TestCommand(orderedPackages));
5455

5556
await runner.run(arguments);
5657
}

lib/commands.dart

+1
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ export "commands/fmt.dart";
99
export "commands/info.dart";
1010
export "commands/pub.dart";
1111
export "commands/pubspec.dart";
12+
export "commands/test.dart";

lib/commands/test.dart

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import "dart:async";
2+
3+
import "package:multipack/commands/common.dart";
4+
import "package:multipack/package.dart";
5+
6+
class TestCommand extends PassthroughCommand {
7+
TestCommand(List<Package> packages)
8+
: super(
9+
"test",
10+
"Run tests.",
11+
packages,
12+
);
13+
14+
@override
15+
FutureOr<int> runOnPackage(Package package) => package.test(
16+
argResults.arguments,
17+
nameWidth: nameWidth,
18+
);
19+
}

lib/package.dart

+16-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ library package;
33

44
import "dart:io";
55

6+
import "package:ansicolor/ansicolor.dart";
67
import "package:directed_graph/directed_graph.dart";
78
import "package:meta/meta.dart";
89
import "package:pubspec/pubspec.dart";
9-
import "package:ansicolor/ansicolor.dart";
1010

1111
final mpPen = AnsiPen()
1212
..xterm(89, bg: true)
@@ -137,6 +137,21 @@ class Package {
137137
);
138138
}
139139

140+
Future<int> test(
141+
List<String> args, {
142+
int nameWidth,
143+
}) {
144+
final executable = isFlutter ? "flutter" : "dart";
145+
146+
final arguments = isFlutter ? ["test", ...args] : ["test", ...args];
147+
148+
return run(
149+
executable,
150+
arguments,
151+
nameWidth: nameWidth,
152+
);
153+
}
154+
140155
@override
141156
String toString() => name;
142157
}

0 commit comments

Comments
 (0)