gpt4 book ai didi

testing - Flutter 测试驱动程序运行所有测试

转载 作者:行者123 更新时间:2023-12-03 22:44:17 26 4
gpt4 key购买 nike

在我们的 Flutter 应用程序中,我们有多个 integration tests .
我通过发出以下命令一一运行它们:

flutter drive --target=test_driver/screenshot.dart

但是我似乎无法弄清楚如何运行所有 integration testtest_driver文件夹?

最佳答案

使用组,但这只是解决了问题的一半,让您的 app_test.dart 像往常一样只是一个带有一些分组测试的主要方法

Future<void> main() async {



group(
'Registration and password',
() {
setUp(() async {
await versionTest(driver, tester, reporter);
});

test('Register Account', () async {
await testRegisterAccount(driver, tester, reporter);
});

test('Register Account 2', () async {
await testRegisterAccount2(driver, tester, reporter);
});

tearDown(() async {
await driver.requestData('go-back');
});
},
timeout: const Timeout(
Duration(minutes: 5),
),
);
然后我们有一个 app.dart 来创建包含在测试应用程序中的应用程序。我们这样做主要是为了测试检查应用程序版本的启动画面,所以我们需要在应用程序真正启动之前 Hook
void main() {
makeTestApp();
}
makeTestApp 执行所有正常的事情,例如 enableFlutterDriverExtensions 等,但它也是我们使用自定义启动器构建应用程序的地方,启动器只是一个空白页面,带有一个启动应用程序的按钮,每个测试都应该在这里开始和结束,回去更难可以看到我们使用了 FlutterDriverExtensions 处理程序消息 - driver.requestData('go-back')
Widget _buildHome(BuildContext context) {
return Scaffold(
child: Center(
child: GestureDetector(
onTap: () {
Navigator.of(context).pushReplacementNamed('/authentication');
},
child: SizedBox(
height: 200,
width: 200,
child: Image.asset(
'assets/images/logo.png',
fit: BoxFit.cover,
),
),
),
),
);
}

WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]).then((_) {
runApp(App(
launcher: (context) => _buildHome(context),
));
});
现在你可以使用类似的东西启动应用程序
flutter run --flavor dev --observatory-port 8888 --disable-service-auth-codes --no-hot test_driver/app.dart
当应用程序运行时,它会显示我们的启动器,等待您使用 dart 库中的代码镜头工具运行测试,
codelens

关于testing - Flutter 测试驱动程序运行所有测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57711547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com