Dart 测试覆盖率未显示为 lib 文件

问题描述

如何使覆盖率报告包含在 lib 目录下的报告?现在,当我使用 dart test --coverage="coverage" 运行测试时,它只会记录我的测试文件的覆盖率,而不是 lib 文件的覆盖率。但是当我更改我的 lib 文件的导入声明时,相对如下:

import '../../lib/conventional.dart';

...而不是:

import 'package:conventional/conventional.dart';

...它有效。也许我做错了什么? Dart 版本是 Dart SDK 版本:“linux_x64”上的 2.12.0(稳定),覆盖版本是 1.0.1。源代码可以在这里找到:https://github.com/asartalo/conventional/

解决方法

我在 reddit 上问了这个问题并在那里得到了答案。所以在运行 dart test --coverage="coverage" 后,我需要添加 --packages=.packages 如下:

dart test --coverage="coverage"
format_coverage --lcov --in=coverage --out=coverage.lcov --packages=.packages --report-on=lib

之前,我没有包含 --packages=.packages 选项,因此它只显示测试文件的覆盖率。相关文档说:

    --packages           path to the package spec file

..并没有提及任何有关其重要性的信息。这令人沮丧。