Я пытаюсь настроить CI / CD для своего приложения Flutter с помощью Fastlane и GitLab на основе это руководство, однако у меня возникли некоторые трудности с автоматизацией интеграционных тестов 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. Кто-нибудь имел дело с интеграционным тестированием и GitLab CI / CD раньше или сталкивался с подобной проблемой с Flutter Driver?