Skip to content

rIIh/dart_test_reporter

Repository files navigation

Test Reporting utilities

This repository contains various tools and utilities for generating and deploy reports for Dart applications

Allure Demo - GH Pages

Concept

Dart test core packages does not provide a way to inject custom reporting logic when you call dart test.

To workaround this problem there is test_reporter cli tool which wraps dart test process and processes events from it.

test_reporter uses dynamic package loading with Isolates. You can write your own reporter package and provide it to test_reporter. See allure_report for example.

Wrapping test command

Prepend your test command with test_reporter

dart run test_reporter -- dart test

You can use it with Flutter tests

dart run test_reporter -- flutter test

You can pass arguments to dart/flutter tests as is

dart run test_reporter -- flutter test --tags golden --coverage

Usage

  1. Add allure_report and test_reporter to your dependencies.
dev_dependencies:
  # reporter
  allure_report: ^1.0.0
  test_reporter: ^1.0.0
  1. Create reporter.dart in test directory. If no file created, Basic Console Reporter will be used.
import 'package:allure_report/allure_report.dart';
import 'package:test_reporter/test_reporter.dart';

TestReporter create() {
  return AllureReporter();
}
  1. Run test_reporter command with your tests
dart run test_reporter -- dart test
dart run test_reporter -- flutter test

Output

Allure results are placed in allure-results folder in project root folder.

Warning

Full Allure format is not supported. Not all features are available at the moment.

Full spec support is needs further development

allures is meant to be used to upload reports to OSS Allure Server

See Allure Server repository to find instructions to build it up and running.

Install

dart pub global activate allure_server_cli

Command will be available with name allures

allures --help

Usage

To upload results to Allure server you should zip results to ZIP Archive

zip -r allure-results.zip allure-results/

Then you can upload report to Allure server with nex command

allures --host http://localhost:8080 report --upload allure-results.zip --path develop

See help for additional usage info

allures --help

Disclaimer

Warning

It is hobby-time project created for research of possibility to integrate Dart tests with Allure Reporting Framework.

I am not currently supposed to support it as full-feature set by only myself. It depends on demand and user activity.

Feel free to contribute :-)