write static method

Future<String> write(
  1. List<TestResult> results, {
  2. String directory = 'build/automation-reports',
})

Writes reports (and any failure screenshots) into directory, creating it if needed. Returns the absolute directory path.

Implementation

static Future<String> write(
  List<TestResult> results, {
  String directory = 'build/automation-reports',
}) async {
  final dir = Directory(directory);
  await dir.create(recursive: true);

  await File('${dir.path}/report.json').writeAsString(TestReportFormatter.toJson(results));
  await File('${dir.path}/junit.xml').writeAsString(TestReportFormatter.toJUnitXml(results));
  await File('${dir.path}/report.html').writeAsString(TestReportFormatter.toHtml(results));

  for (final result in results) {
    final shot = result.screenshot;
    if (shot != null) {
      await File('${dir.path}/${_slug(result.test.name)}.png').writeAsBytes(shot);
    }
  }

  return dir.absolute.path;
}