DEV Community

jose pergolesi
jose pergolesi

Posted on

Futter + Gitlab + unit test + CI

Como lograr Integración continua usando Gitlab y desarrollando una app con Flutter?

En el proyecto que estoy trabajando actualmente me pidieron que comience a realizar pruebas unitarias para la app y que se ejecuten en cada merge request antes de fusionar los cambios a la rama master.

Hasta el momento nunca había realizado test en Flutter, por lo que me puse a leer la documentacion ver videos en youtube y leer muchos post.

Los pasos que seguí para lograr lo que me pidieron fueron los siguientes:

  • Dentro de la carpeta test que esta en la raíz del proyecto cree una nueva carpeta solo para las pruebas unitarias con el nombre unit_test.

  • Agregue test: a las dependencias de desarrollo (dev_dependencies) en el archivo pubspec.yml

dev_dependencies:
    test:
Enter fullscreen mode Exit fullscreen mode
  • Cree un test básico de ejemplo para empezar a probar
import  'package:test/test.dart';

void  main(){
    group('example two unit test', (){
        test('#sum' , (){
            expect(1+1, 2);
        });
        test('#sum' , (){
            expect(1+1, 2);
        });
    });
});
Enter fullscreen mode Exit fullscreen mode
  • Cree un archivo de configuración en la carpeta raíz del proyecto llamado .gitlab-ci.yml para implementar CI en gitlab con el siguiente contenido:
image: cirrusci/flutter:stable

before_script:
  - flutter doctor

stages:
  - test

unit_test:
  stage: test

script:
  - flutter test
Enter fullscreen mode Exit fullscreen mode

Listo con eso ahora ya puedes hacer un push en tu proyecto y veras algo parecido a esto

Alt Text

Ahora en los próximos push que hagas van a correr esos dos test del ejemplo.

Espero que sean de ayuda estas lineas.

Este es mi primer post y espero empezar a compartir cosas sobre flutter con las que me vaya topando y resolviendo que considere que puedan llegar a ser útiles a otras personas a la hora de enfrentarse a los mismos problemas

Top comments (1)

Collapse
 
maginkgo profile image
Marcos Alejandro

Gracias José, información muy útil.