diff --git a/packages/flutter_tools/lib/src/commands/test.dart b/packages/flutter_tools/lib/src/commands/test.dart index 2d0919bbad2..fda21422941 100644 --- a/packages/flutter_tools/lib/src/commands/test.dart +++ b/packages/flutter_tools/lib/src/commands/test.dart @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'dart:math' as math; - import 'package:meta/meta.dart'; import '../asset.dart'; @@ -146,7 +144,6 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { ) ..addOption('concurrency', abbr: 'j', - defaultsTo: math.max(1, globals.platform.numberOfProcessors - 2).toString(), help: 'The number of concurrent test processes to run. This will be ignored ' 'when running integration tests.', valueHelp: 'jobs', @@ -353,8 +350,9 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { ); } - int? jobs = int.tryParse(stringArg('concurrency')!); - if (jobs == null || jobs <= 0 || !jobs.isFinite) { + final String? concurrencyString = stringArg('concurrency'); + int? jobs = concurrencyString == null ? null : int.tryParse(concurrencyString); + if (jobs != null && (jobs <= 0 || !jobs.isFinite)) { throwToolExit( 'Could not parse -j/--concurrency argument. It must be an integer greater than zero.' ); diff --git a/packages/flutter_tools/lib/src/test/runner.dart b/packages/flutter_tools/lib/src/test/runner.dart index 08972f4cb9a..ab3082269ff 100644 --- a/packages/flutter_tools/lib/src/test/runner.dart +++ b/packages/flutter_tools/lib/src/test/runner.dart @@ -109,7 +109,8 @@ class _FlutterTestRunnerImpl implements FlutterTestRunner { '--file-reporter=$fileReporter', if (timeout != null) ...['--timeout', timeout], - '--concurrency=$concurrency', + if (concurrency != null) + '--concurrency=$concurrency', for (final String name in names) ...['--name', name], for (final String plainName in plainNames) diff --git a/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart index 03f8ba075a1..764695d17e9 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart @@ -158,7 +158,7 @@ dev_dependencies: }); testUsingContext( - 'Confirmation that the reporter and timeout args are not set by default', + 'Confirmation that the reporter, timeout, and concurrency args are not set by default', () async { final FakePackageTest fakePackageTest = FakePackageTest(); @@ -175,6 +175,7 @@ dev_dependencies: expect(fakePackageTest.lastArgs, isNot(contains('compact'))); expect(fakePackageTest.lastArgs, isNot(contains('--timeout'))); expect(fakePackageTest.lastArgs, isNot(contains('30s'))); + expect(fakePackageTest.lastArgs, isNot(contains('--concurrency'))); }, overrides: { FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(),