Flutter集成测试和Gitlab CI / CD

时间:2020-09-29 15:04:01

标签: flutter gitlab gitlab-ci flutter-test flutterdriver

我正在尝试使用基于this tutorial的Fastlane和GitLab为我的Flutter应用程序设置CI / CD,但是我在使用Flutter驱动程序自动化Flutter集成测试时遇到了一些困难。我遇到的问题是,当所有测试成功完成时,应用程序实例将保持活动状态(例如,没有退出代码),这意味着在Gitlab阶段不再执行任何脚本。例如,当测试失败时,我收到的消息是:

Unhandled exception:
Dummy exception to set exit code.
Stopping application instance.
Driver tests failed: 255 

我收到退出代码255,我认为Gitlab Runner将识别为失败并停止执行其他阶段(构建和部署)吗?

但是如果测试通过,我得到的是: 00:05 +3: All tests passed!,应用程序似乎仍在运行。

我正在使用tearDownAll函数,但似乎无济于事:

tearDownAll(() async {
      if (driver != null){
        await driver.close();
      }
    }); 

exit(0)中添加exit(255)tearDownAll可以正确关闭实例,但是我现在可以读取测试是否通过/失败,因此可以将退出代码设置为0/255。有人在Flutter Driver之前遇到过集成测试和GitLab CI / CD吗?

1 个答案:

答案 0 :(得分:0)

我已经确定了问题-我只是在测试中使用setUp()而不是setUpAll()。更改为

之后
setUpAll(() async {
    driver = await FlutterDriver.connect();
});

测试成功完成,并且应用程序实例已关闭。