单元测试期间的热重载

Hot Reload during Unit testing

我现在正在开发一个小的 flutter 应用程序。我想和大家一样,我爱上了热重载功能。

所以现在我想知道是否有可能在单元测试期间拥有相同的开发人员体验。一定要在某个地方转旗,还是知道不可能。

如果不可能,是否有任何计划使其成为可能?

您需要 运行 作为应用进行单元测试才能使用热重载。

在 IntelliJ 中,您可以复制 lib/main.dart 的 运行 配置,然后 select 副本中的文件 test/my_test.dart

当您 运行 以这种方式进行测试时,IntelliJ(不知道其他 IDE)中的测试文件中的一组测试不支持 运行 单个测试。

在我看来,如果您 运行 将其作为单元测试,热重载不会带来太多好处,因为执行速度非常快。

我想您想要的是 运行 新测试一旦更改就立即进行。但在那种情况下,它不是热重载。只是一个观察者,它会检测您的源或测试是否已更改并重新启动它们。

Flutter 和较低层尚未实现 "watch"。尽管您可以使用节点包

很容易地实现类似的效果

npm i -g watch 将全局安装 watch,以便您可以将其用作命令行。

然后在您的终端中执行

watch "flutter test" lib test 这将 运行 flutter test 每当 lib 和测试文件夹中发生变化时