mirror of
https://github.com/flutter/packages.git
synced 2025-06-30 23:03:11 +08:00
[ci] Drive tests with html renderer if CHANNEL is stable. (#7146)
Introduces a small fork in the `drive_examples_command` to run integration tests with `--web-renderer=html` in the `stable` channel (and `--web-renderer=canvaskit` in `master`). This is supposed to be removed, once the current `master` rolls into `stable` (see clean-up issue referenced below). ## Issues * Part of: https://github.com/flutter/flutter/issues/143543 * Prevents flakes: https://github.com/flutter/packages/pull/7115#issuecomment-2226661488 * Clean-up issue: https://github.com/flutter/flutter/issues/151869
This commit is contained in:
@ -119,7 +119,11 @@ class DriveExamplesCommand extends PackageLoopingCommand {
|
|||||||
'web-server',
|
'web-server',
|
||||||
'--web-port=7357',
|
'--web-port=7357',
|
||||||
'--browser-name=chrome',
|
'--browser-name=chrome',
|
||||||
'--web-renderer=canvaskit',
|
// TODO(dit): Clean this up, https://github.com/flutter/flutter/issues/151869
|
||||||
|
if (platform.environment['CHANNEL']?.toLowerCase() == 'master')
|
||||||
|
'--web-renderer=canvaskit',
|
||||||
|
if (platform.environment['CHANNEL']?.toLowerCase() != 'master')
|
||||||
|
'--web-renderer=html',
|
||||||
if (platform.environment.containsKey('CHROME_EXECUTABLE'))
|
if (platform.environment.containsKey('CHROME_EXECUTABLE'))
|
||||||
'--chrome-binary=${platform.environment['CHROME_EXECUTABLE']}',
|
'--chrome-binary=${platform.environment['CHROME_EXECUTABLE']}',
|
||||||
],
|
],
|
||||||
|
@ -38,6 +38,9 @@ void main() {
|
|||||||
runner = CommandRunner<void>(
|
runner = CommandRunner<void>(
|
||||||
'drive_examples_command', 'Test for drive_example_command');
|
'drive_examples_command', 'Test for drive_example_command');
|
||||||
runner.addCommand(command);
|
runner.addCommand(command);
|
||||||
|
|
||||||
|
// TODO(dit): Clean this up, https://github.com/flutter/flutter/issues/151869
|
||||||
|
mockPlatform.environment['CHANNEL'] = 'master';
|
||||||
});
|
});
|
||||||
|
|
||||||
void setMockFlutterDevicesOutput({
|
void setMockFlutterDevicesOutput({
|
||||||
@ -688,6 +691,60 @@ void main() {
|
|||||||
]));
|
]));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// TODO(dit): Clean this up, https://github.com/flutter/flutter/issues/151869
|
||||||
|
test('drives a web plugin (html renderer in stable)', () async {
|
||||||
|
// Override the platform to simulate CHANNEL: stable
|
||||||
|
mockPlatform.environment['CHANNEL'] = 'stable';
|
||||||
|
|
||||||
|
final RepositoryPackage plugin = createFakePlugin(
|
||||||
|
'plugin',
|
||||||
|
packagesDir,
|
||||||
|
extraFiles: <String>[
|
||||||
|
'example/integration_test/plugin_test.dart',
|
||||||
|
'example/test_driver/integration_test.dart',
|
||||||
|
'example/web/index.html',
|
||||||
|
],
|
||||||
|
platformSupport: <String, PlatformDetails>{
|
||||||
|
platformWeb: const PlatformDetails(PlatformSupport.inline),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
final Directory pluginExampleDirectory = getExampleDir(plugin);
|
||||||
|
|
||||||
|
final List<String> output = await runCapturingPrint(runner, <String>[
|
||||||
|
'drive-examples',
|
||||||
|
'--web',
|
||||||
|
]);
|
||||||
|
|
||||||
|
expect(
|
||||||
|
output,
|
||||||
|
containsAllInOrder(<Matcher>[
|
||||||
|
contains('Running for plugin'),
|
||||||
|
contains('No issues found!'),
|
||||||
|
]),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(
|
||||||
|
processRunner.recordedCalls,
|
||||||
|
orderedEquals(<ProcessCall>[
|
||||||
|
ProcessCall(
|
||||||
|
getFlutterCommand(mockPlatform),
|
||||||
|
const <String>[
|
||||||
|
'drive',
|
||||||
|
'-d',
|
||||||
|
'web-server',
|
||||||
|
'--web-port=7357',
|
||||||
|
'--browser-name=chrome',
|
||||||
|
'--web-renderer=html',
|
||||||
|
'--driver',
|
||||||
|
'test_driver/integration_test.dart',
|
||||||
|
'--target',
|
||||||
|
'integration_test/plugin_test.dart',
|
||||||
|
],
|
||||||
|
pluginExampleDirectory.path),
|
||||||
|
]));
|
||||||
|
});
|
||||||
|
|
||||||
test('runs chromedriver when requested', () async {
|
test('runs chromedriver when requested', () async {
|
||||||
final RepositoryPackage plugin = createFakePlugin(
|
final RepositoryPackage plugin = createFakePlugin(
|
||||||
'plugin',
|
'plugin',
|
||||||
|
Reference in New Issue
Block a user