Как получить отчет о покрытии тестируемого файла? - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь получить отчет о покрытии для тестируемого файла, но мне не удается.

Я создал новый проект библиотеки Dart под названием FooBar со следующими файлами:

FooBar/
├── lib
│   ├── FooBar.dart
│   └── src
│       └── FooBar_base.dart
└── test
    └── FooBar_test.dart

Для генерации отчета о покрытии я звоню dart --pause-isolates-on-exit --enable-vm-service=47114 test/FooBar_test.dart, а на другой консоли звоню pub global run coverage:collect_coverage --uri=http://127.0.0.1:47114/ -o coverage.json --resume-isolates.

С помощью этих двух команд я получаю огромный JSON-файл.

Пакет coverage также имеет форматтер. Поэтому я звоню pub global run coverage:format_coverage -i coverage.json. Я получаю хороший форматированный вывод, но не тот файл. Он печатает тестовый файл, но не тестируемый файл.

$ pub global run coverage:format_coverage -i coverage.json
/Users/ralphbergmann/development/dart/FooBar/test/FooBar_test.dart
       |import 'package:FooBar/FooBar.dart';
       |import 'package:test/test.dart';
       |
      1|void main() {
      2|  group('A group of tests', () {
       |    Awesome awesome;
       |
      2|    setUp(() {
      1|      awesome = new Awesome();
       |    });
       |
      2|    test('First Test', () {
      2|      expect(awesome.isAwesome, isTrue);
       |    });
       |  });
       |}

Как получить отформатированный отчет о тестируемом файле? Я знаю, что есть некоторые опции для команды coverage:format_coverage, но они не решили мою проблему. Например, я добавил опцию --packages=.packages, в результате чего я получаю отформатированный отчет для всех файлов Dart, а не только для моих собственных.

1 Ответ

0 голосов
/ 08 мая 2018

По умолчанию format_coverage собирает покрытие для полного транзитивного закрытия импортированных источников Dart. Чтобы ограничить отчеты определенным подмножеством файлов, он поддерживает параметр --report-on.

Опция --report-on фильтрует на основе разрешенного абсолютного пути источников. В вашем случае передача --report-on=/Users/ralphbergmann/development/dart/FooBar/lib должна ограничить сбор покрытия этим каталогом.

...