Skip to content

Commit b2e58f8

Browse files
dcharkesCommit Queue
authored andcommitted
[dartdev] Run hooks for dev dependencies in dart run
The user might want to access the assets from dev dependencies. The Dart code might want to use dev dependencies. `dart run test`. Closes: dart-lang/tools#2237 Change-Id: Ib8c9b4a7f3f2dedb33777e1f29cb82fc678edd4f Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-linux-release-arm64-try,pkg-linux-release-try,pkg-mac-release-arm64-try,pkg-mac-release-try,pkg-win-release-arm64-try,pkg-win-release-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/462980 Commit-Queue: Daco Harkes <dacoharkes@google.com> Reviewed-by: Michael Goderbauer <goderbauer@google.com>
1 parent e91aec8 commit b2e58f8

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

pkg/dartdev/lib/src/commands/run.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,10 @@ Usage: dart [vm-options] run [arguments] [<dart-file>|<local-package>|<remote-ex
501501
packageConfigUri: packageConfigUri,
502502
packageConfig: packageConfig,
503503
runPackageName: runPackageName,
504-
includeDevDependencies: false,
504+
// Enable accessing assets of dev dependencies in the debugger and
505+
// enabling commands such as `dart run test` and `dart run
506+
// coverage_with_test` that rely on having dev dependencies.
507+
includeDevDependencies: true,
505508
verbose: verbose,
506509
dataAssetsExperimentEnabled: dataAssetsExperimentEnabled,
507510
);

pkg/dartdev/test/native_assets/run_test.dart

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,31 @@ void main([List<String> args = const []]) async {
8282
});
8383
});
8484

85+
for (final subcommand in ['test', 'test/my_test.dart']) {
86+
test('dart run $subcommand (dev_dependency_with_hook)',
87+
timeout: longTimeout, () async {
88+
await nativeAssetsTest('dev_dependency_with_hook', (packageUri) async {
89+
final result = await runDart(
90+
arguments: [
91+
'run',
92+
subcommand,
93+
],
94+
workingDirectory: packageUri,
95+
logger: logger,
96+
);
97+
expect(
98+
result.stdout,
99+
stringContainsInOrder(
100+
[
101+
'native add test',
102+
'All tests passed!',
103+
],
104+
),
105+
);
106+
});
107+
});
108+
}
109+
85110
test('dart run some_dev_dep', timeout: longTimeout, () async {
86111
await nativeAssetsTest('native_add', (packageUri) async {
87112
final result = await runDart(
@@ -94,7 +119,7 @@ void main([List<String> args = const []]) async {
94119
logger: logger,
95120
);
96121
// It should not build native_add for running ffigen.
97-
expect(result.stdout, isNot(contains('build.dart')));
122+
expect(result.stdout, isNot(contains('Running build hooks')));
98123
});
99124
});
100125

0 commit comments

Comments
 (0)