You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向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.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:52:05