readResults method

  1. @override
Stream<ScenarioRunResult> readResults({
  1. String? executionName,
  2. String? scenarioName,
  3. String? iterationName,
  4. CancellationToken? cancellationToken,
})
override

Returns ScenarioRunResults, optionally filtered by executionName, scenarioName, and iterationName.

Omitting a filter parameter includes all values for that dimension.

Implementation

@override
Stream<ScenarioRunResult> readResults({
  String? executionName,
  String? scenarioName,
  String? iterationName,
  CancellationToken? cancellationToken,
}) async* {
  _validateSegment(executionName, 'executionName');
  _validateSegment(scenarioName, 'scenarioName');
  _validateSegment(iterationName, 'iterationName');

  final resultsDir = Directory(_resultsRootPath);
  if (!resultsDir.existsSync()) return;

  for (final execDirPath
      in _enumerateExecutionDirs(resultsDir, executionName)) {
    for (final scenDirPath
        in _enumerateScenarioDirs(execDirPath, scenarioName)) {
      for (final filePath
          in _enumerateResultFiles(scenDirPath, iterationName)) {
        final json = jsonDecode(await File(filePath).readAsString())
            as Map<String, dynamic>;
        yield _resultFromJson(json);
      }
    }
  }
}