如何向dart test传递--dart-define变量?
在纯Dart测试中传递编译时变量的方案
纯Dart测试命令不支持--dart-define参数,但可以通过以下两种方式实现和Flutter测试类似的变量传递效果:
1. 使用--define参数(编译时变量,和Flutter行为一致)
Dart测试命令对应的编译时变量传递参数是--define,而非--dart-define。执行测试的命令如下:
dart test --define=FOO=BAR
测试代码中同样可以用String.fromEnvironment获取变量值:
import 'package:test/test.dart'; void main() { test('Value is correct', () { expect(const String.fromEnvironment('FOO'), 'BAR'); }); }
2. 使用系统环境变量(运行时变量)
如果不需要编译时确定变量值,也可以通过设置系统环境变量来传递:
- Bash/Zsh:
FOO=BAR dart test
- Windows CMD:
set FOO=BAR && dart test
- Windows PowerShell:
$env:FOO="BAR"; dart test
测试代码中通过dart:io的Platform.environment读取:
import 'dart:io'; import 'package:test/test.dart'; void main() { test('Value is correct', () { expect(Platform.environment['FOO'], 'BAR'); }); }
内容的提问来源于stack exchange,提问作者JSAN L.
相关产品推荐
相关产品推荐

