run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
void run() async {
try {
if (!_validateDependencies()) return;
if (!_validateInputs()) return;
final now = DateTime.now();
final config = _prepareConfiguration();
if (config['generateL10n']) {
await _generateLocalization(config);
}
await _prepareFirebaseConfiguration(config);
final features = _discoverFeatureFiles(config);
final ndjsons = await _processFeatureFiles(features);
_saveTestOutput(ndjsons);
await _executeIntegrationTests(config);
final totalTime = DateTime.now().difference(now);
printMessage('⏰ Total Time: ${formatDurationInHhMmSs(totalTime)}');
} catch (e) {
StatusHelper.failed('Cucumber testing failed: ${e.toString()}',
suggestion: 'Ensure gherkin is installed and feature files exist',
examples: [
'npm install -g @cucumber/gherkin-cli',
'morpheme doctor'
]);
}
}