如何使用 pub run test 运行特定的 Dart _test 文件?

sni*_*tko 4 testing unit-testing dart

我的test_dir中有一堆文件,问题是它们必须单独运行,因为其中一个是测试只能在浏览器中运行的代码,另一个是测试只能在后端运行的代码.

现在,我知道有一个用于指定测试名称的-n参数pub run test,但是如何运行特定文件?从文档中看不是很清楚,我无法成功完成。

Gün*_*uer 5

您只需添加目录或具体文件名

pub run test test/some_dir/some_file_test.dart
Run Code Online (Sandbox Code Playgroud)

如果您只想在控制台或仅在浏览器中运行某些测试,您可以按测试或按文件或在项目配置文件中进行配置。

某些测试文件仅在特定平台上运行才有意义。他们可能会使用dart:htmldart:io,他们可能会测试 Windows 的特定文件系统行为,或者他们可能会使用仅在 Chrome 中可用的功能。该@TestOn批注可以很容易地申报到底哪个平台的测试文件应该运行。只需将它放在文件的顶部,在任何库或导入声明之前:

@TestOn("vm") // or @TestOn("browser")

import "dart:io";

import "package:test/test.dart";

void main() {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

当您运行所有测试时

pub run test -pchrome -pfirefox -pie
Run Code Online (Sandbox Code Playgroud)

那么这个测试将不会运行,因为 -pvm没有包含在内。

这允许细粒度的配置,如

例如,如果您想在除 Chrome 之外的所有浏览器上运行测试,您可以编写@TestOn("browser && !chrome").

测试包有一个很棒的自述文件,用于所有其他配置选项。