启用NNBD实验后如何运行Dart测试

问题描述

我刚刚更新到最新的dart-beta版本(2.11.0-213.5.beta),并升级了我的依赖项以使用null safety版本:

dev_dependencies:
  pedantic: ^1.10.0-nullsafety
  test: ^1.16.0-nullsafety

正确注释所有类型以使用NNBD后,我可以成功运行dart analyze .

现在,我根本无法运行测试,因为test命令似乎尚未接受标记--enable-experiment=non-nullable

我可以以dart --enable-experiment=non-nullable example/actors_example.dart好的方式运行我的包示例。

如何让测试运行者使用NNBD,以便我可以运行测试?

解决方法

Dart世界中的事物快速发展。看起来带有NNBD的测试程序包在beta通道中不再起作用,它只能在最新,最热门的dev通道中正常工作。

手动下载dev channel SDK(似乎未在Brew上发布)并再次升级依赖项之后,我就可以为NNBD准备好程序包并运行正常了!

自2020年11月起,我的SDK版本约束如下:

environment:
  sdk: ">=2.12.0-13.0.dev <2.13.0"

当我运行dart --version时,我看到以下内容:

Dart SDK version: 2.12.0-13.0.dev (dev) (Mon Nov 2 15:57:37 2020 -0800) on "macos_x64"

升级的依赖项:

dev_dependencies:
  pedantic: ^1.10.0-nullsafety.3
  test: ^1.16.0-nullsafety.9

现在,由于Dart 2.12将所有Dart工具统一到dart命令中,因此我使用以下命令运行测试:

dart test

代替原来的pub run test。一切都很好,再次工作。

迫不及待想让NNBD成为稳定的Dart !!