Flutter Test Driver运行所有测试

时间:2019-08-29 13:42:45

标签: testing flutter automated-tests

在Flutter应用程序中,我们有多个integration tests
我通过发布来逐一运行它们:

flutter drive --target=test_driver/screenshot.dart

但是我似乎不知道如何运行integration test文件夹中的所有test_driver吗?

2 个答案:

答案 0 :(得分:-1)

有了组,但这仅解决了一半问题,像平常一样让您的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,它创建了包装在测试应用中的应用。我们主要是为了测试可检查应用程序版本的初始屏幕,因此我们需要在应用程序真正启动之前进行了解

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

答案 1 :(得分:-5)

一种方法是在Flutter应用的根目录中打开一个终端窗口,然后输入flutter test

请参阅:https://github.com/flutter/flutter/wiki/Running-and-writing-tests#running-unit-tests