1

我正在尝试使用新的 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 ...
   });
 });
} 

现在,登录完美运行,完成后开始注销测试,但此时,应用程序正在等待消息“测试开始..”,然后失败。

使用旧包,一切正常,在一个测试和另一个测试之间,应用程序没有重新启动。

4

1 回答 1

1

我解决了添加:

await tester.pumpFrames(app.MyApp(), Duration(seconds: 3));

在所有测试文件中。

于 2021-07-09T07:32:07.097 回答