sti*_*mms 9 dart flutter flutter-test
我正在做一个 Flutter 项目,并试图找到构建我的测试的最佳方式。通常,我构建测试以反映正在测试的主项目的目录结构。
lib
|models
|providers
|userprovider.dart
test
lib
|models
|providers
|userproviderShould.dart
Run Code Online (Sandbox Code Playgroud)
但是,我无法确定这种方法对于 Dart 代码是否不是最佳选择。测试项目中的每个文件似乎都需要有一个main方法,感觉很奇怪。我也不清楚如何运行整个测试套件。Flutter 测试运行 ( flutter test) 似乎不理解目录。运行flutter test test/lib/providers时flutter test test/lib/providers/userproviderShould.dart不起作用。如果它不理解目录,它肯定不理解必须递归到目录中。
有没有办法解决这个问题,既不需要构建一个脆弱的入口点,手动包含所有其余的测试,也不需要编写一个 shell 脚本来单独运行每个文件?
Rém*_*let 23
如果您想要flutter test或pub run test执行文件而不手动将其路径作为参数传递给命令,则该文件必须:
/test文件夹内_test.dart任何没有这个的东西_test都不会被命令行执行。
要在项目中运行所有单元测试,请在项目的根目录下在终端中键入以下命令之一:
flutter test
Run Code Online (Sandbox Code Playgroud)
dart test
Run Code Online (Sandbox Code Playgroud)
pub run test. 您可能仍然可以这样做,但这dart test是一种新的方法,也更容易记住。flutter pub get或dart pub get检索测试包,您可能需要运行或检索测试包。显然,在 Flutter 2.5 中(也许在下面,尽管我没有检查过),您可以使用任何目录名作为参数,它将运行**/*_test.dart其中的所有文件。
所以:flutter test lib成功了!您可以向命令传递其他参数,只要目录名称是最后一个参数 ( flutter test --no-pub --coverage lib)。
文档: https: //pub.dev/packages/test#running-tests