feat: enable flavor option on test command (#89045)
This commit is contained in:
parent
240973283d
commit
d8034538bd
@ -4,9 +4,15 @@
|
|||||||
|
|
||||||
import 'package:flutter_devicelab/framework/devices.dart';
|
import 'package:flutter_devicelab/framework/devices.dart';
|
||||||
import 'package:flutter_devicelab/framework/framework.dart';
|
import 'package:flutter_devicelab/framework/framework.dart';
|
||||||
|
import 'package:flutter_devicelab/framework/task_result.dart';
|
||||||
import 'package:flutter_devicelab/tasks/integration_tests.dart';
|
import 'package:flutter_devicelab/tasks/integration_tests.dart';
|
||||||
|
|
||||||
Future<void> main() async {
|
Future<void> main() async {
|
||||||
deviceOperatingSystem = DeviceOperatingSystem.android;
|
deviceOperatingSystem = DeviceOperatingSystem.android;
|
||||||
await task(createFlavorsTest());
|
await task(() async {
|
||||||
|
await createFlavorsTest().call();
|
||||||
|
await createIntegrationTestFlavorsTest().call();
|
||||||
|
|
||||||
|
return TaskResult.success(null);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
@ -4,9 +4,15 @@
|
|||||||
|
|
||||||
import 'package:flutter_devicelab/framework/devices.dart';
|
import 'package:flutter_devicelab/framework/devices.dart';
|
||||||
import 'package:flutter_devicelab/framework/framework.dart';
|
import 'package:flutter_devicelab/framework/framework.dart';
|
||||||
|
import 'package:flutter_devicelab/framework/task_result.dart';
|
||||||
import 'package:flutter_devicelab/tasks/integration_tests.dart';
|
import 'package:flutter_devicelab/tasks/integration_tests.dart';
|
||||||
|
|
||||||
Future<void> main() async {
|
Future<void> main() async {
|
||||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||||
await task(createFlavorsTest());
|
await task(() async {
|
||||||
|
await createFlavorsTest().call();
|
||||||
|
await createIntegrationTestFlavorsTest().call();
|
||||||
|
|
||||||
|
return TaskResult.success(null);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
@ -4,9 +4,15 @@
|
|||||||
|
|
||||||
import 'package:flutter_devicelab/framework/devices.dart';
|
import 'package:flutter_devicelab/framework/devices.dart';
|
||||||
import 'package:flutter_devicelab/framework/framework.dart';
|
import 'package:flutter_devicelab/framework/framework.dart';
|
||||||
|
import 'package:flutter_devicelab/framework/task_result.dart';
|
||||||
import 'package:flutter_devicelab/tasks/integration_tests.dart';
|
import 'package:flutter_devicelab/tasks/integration_tests.dart';
|
||||||
|
|
||||||
Future<void> main() async {
|
Future<void> main() async {
|
||||||
deviceOperatingSystem = DeviceOperatingSystem.android;
|
deviceOperatingSystem = DeviceOperatingSystem.android;
|
||||||
await task(createFlavorsTest());
|
await task(() async {
|
||||||
|
await createFlavorsTest().call();
|
||||||
|
await createIntegrationTestFlavorsTest().call();
|
||||||
|
|
||||||
|
return TaskResult.success(null);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,14 @@ TaskFunction createFlavorsTest() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TaskFunction createIntegrationTestFlavorsTest() {
|
||||||
|
return IntegrationTest(
|
||||||
|
'${flutterDirectory.path}/dev/integration_tests/flavors',
|
||||||
|
'integration_test/integration_test.dart',
|
||||||
|
extraOptions: <String>['--flavor', 'paid'],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
TaskFunction createExternalUiIntegrationTest() {
|
TaskFunction createExternalUiIntegrationTest() {
|
||||||
return DriverTest(
|
return DriverTest(
|
||||||
'${flutterDirectory.path}/dev/integration_tests/external_ui',
|
'${flutterDirectory.path}/dev/integration_tests/external_ui',
|
||||||
@ -166,10 +174,16 @@ class DriverTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class IntegrationTest {
|
class IntegrationTest {
|
||||||
IntegrationTest(this.testDirectory, this.testTarget);
|
IntegrationTest(
|
||||||
|
this.testDirectory,
|
||||||
|
this.testTarget, {
|
||||||
|
this.extraOptions = const <String>[],
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
final String testDirectory;
|
final String testDirectory;
|
||||||
final String testTarget;
|
final String testTarget;
|
||||||
|
final List<String> extraOptions;
|
||||||
|
|
||||||
Future<TaskResult> call() {
|
Future<TaskResult> call() {
|
||||||
return inDirectory<TaskResult>(testDirectory, () async {
|
return inDirectory<TaskResult>(testDirectory, () async {
|
||||||
@ -183,6 +197,7 @@ class IntegrationTest {
|
|||||||
'-d',
|
'-d',
|
||||||
deviceId,
|
deviceId,
|
||||||
testTarget,
|
testTarget,
|
||||||
|
...extraOptions,
|
||||||
];
|
];
|
||||||
await flutter('test', options: options);
|
await flutter('test', options: options);
|
||||||
|
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
import 'package:flavors/main.dart' as app;
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:integration_test/integration_test.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
|
group('Flavor Test', () {
|
||||||
|
testWidgets('check flavor', (WidgetTester tester) async {
|
||||||
|
app.runMainApp();
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
|
||||||
|
expect(find.text('paid'), findsOneWidget);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
@ -8,6 +8,10 @@ import 'package:flutter_driver/driver_extension.dart';
|
|||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
enableFlutterDriverExtension();
|
enableFlutterDriverExtension();
|
||||||
|
runMainApp();
|
||||||
|
}
|
||||||
|
|
||||||
|
void runMainApp() {
|
||||||
runApp(const Center(child: Flavor()));
|
runApp(const Center(child: Flavor()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,6 +73,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
|
|||||||
usesDartDefineOption();
|
usesDartDefineOption();
|
||||||
usesWebRendererOption();
|
usesWebRendererOption();
|
||||||
usesDeviceUserOption();
|
usesDeviceUserOption();
|
||||||
|
usesFlavorOption();
|
||||||
|
|
||||||
argParser
|
argParser
|
||||||
..addMultiOption('name',
|
..addMultiOption('name',
|
||||||
|
@ -605,6 +605,32 @@ dev_dependencies:
|
|||||||
]),
|
]),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testUsingContext('Integration tests given flavor', () async {
|
||||||
|
final FakeFlutterTestRunner testRunner = FakeFlutterTestRunner(0);
|
||||||
|
|
||||||
|
final TestCommand testCommand = TestCommand(testRunner: testRunner);
|
||||||
|
final CommandRunner<void> commandRunner = createTestCommandRunner(testCommand);
|
||||||
|
|
||||||
|
await commandRunner.run(const <String>[
|
||||||
|
'test',
|
||||||
|
'--no-pub',
|
||||||
|
'--flavor',
|
||||||
|
'dev',
|
||||||
|
'integration_test',
|
||||||
|
]);
|
||||||
|
|
||||||
|
expect(
|
||||||
|
testRunner.lastDebuggingOptionsValue.buildInfo.flavor,
|
||||||
|
contains('dev'),
|
||||||
|
);
|
||||||
|
}, overrides: <Type, Generator>{
|
||||||
|
FileSystem: () => fs,
|
||||||
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
DeviceManager: () => _FakeDeviceManager(<Device>[
|
||||||
|
FakeDevice('ephemeral', 'ephemeral', type: PlatformType.android),
|
||||||
|
]),
|
||||||
|
});
|
||||||
|
|
||||||
testUsingContext('Builds the asset manifest by default', () async {
|
testUsingContext('Builds the asset manifest by default', () async {
|
||||||
final FakeFlutterTestRunner testRunner = FakeFlutterTestRunner(0);
|
final FakeFlutterTestRunner testRunner = FakeFlutterTestRunner(0);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user