问题描述
我正在尝试使用新的 integration_test 包为我的 Flutter 应用创建集成测试:https://github.com/flutter/flutter/tree/master/packages/integration_test#integration_test
integration_test/
login_test.dart
logout_test.dart
run_all_test.dart
test_driver/
integration_test.dart
我想使用 run_all_test.dart 按顺序运行登录和注销测试
在 run_all_test.dart 脚本中,我有:
void main() {
final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized() as
IntegrationTestWidgetsFlutterBinding;
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
app.main();
group('All tests',() {
logintest();
logouttest();
});
和login_test.dart是这样的(logout_test.dart是一样的):
void main() {
logintest();
}
Future<void> logintest() async {
group('Login - ',(){
testWidgets("Login test",(WidgetTester tester) async {
await ...
});
});
}
现在,登录工作完美,当他完成后,开始注销测试,但此时,应用程序正在等待消息“测试开始......”然后失败。
使用旧包,一切正常,并且在一个测试和另一个测试之间,应用程序没有重新启动。
解决方法
我解决了添加:
await tester.pumpFrames(app.MyApp(),Duration(seconds: 3));
在所有测试文件中。