Automatización de Pruebas en Go con GitHub Actions
Clase 8 de 30 • Curso de Ciberseguridad para Desarrollo Web
Resumen
¿Cómo configurar pruebas automáticas con GitHub Actions en un proyecto Go?
Si estás buscando automatizar tus pruebas y garantizar la calidad de tu código de manera continua, GitHub Actions es una herramienta ideal para integrar pruebas automáticas en tu flujo de trabajo. Aquí te explicamos cómo incorporar GitHub Actions en un proyecto de Go, desde la configuración inicial hasta la ejecución automática de pruebas al hacer un push.
¿Cómo sincronizar dependencias en Go?
Cuando trabajas con Go, es común enfrentar problemas con las dependencias, especialmente si cambias de rama o eliminas dependencias sin actualizar los archivos correspondientes. Para resolver estos problemas, asegura que las dependencias estén correctamente sincronizadas utilizando ciertos comandos:
-
Actualizar recolección de dependencias:
go mod tidy
Este comando actualiza las dependencias en
go.mod
ygo.sum
. -
Actualizar el directorio del vendor:
go mod vendor
Recolecta las dependencias y las coloca en el directorio
vendor
. -
Resolver inconsistencias:
go mod verify
Verifica las hashes de las dependencias para evitar inconsistencias.
¿Cómo crear una prueba básica en Go?
Para comenzar a correr pruebas con GitHub Actions, primero crea una prueba "dummy" en Go. Sigue estos pasos:
-
Crear un archivo de prueba:
Crea un archivo llamado
main_test.go
en el mismo nivel que tu paquete principalmain
. Tu prueba podría verse así:package main import ( "testing" "github.com/stretchr/testify/require" ) func TestDummy(t *testing.T) { result := 42 // valor esperado require.Equal(t, 42, result, "El resultado debería ser 42") }
-
Añadir dependencias de prueba:
Instala la dependencia
require
del paquetetestify
si aún no lo has hecho:go get github.com/stretchr/testify/require go mod tidy
¿Cómo configurar GitHub Actions para correr pruebas en Go?
Configurar GitHub Actions requiere crear archivos YAML que definan los flujos de trabajo. Aquí te mostramos cómo hacerlo para que se ejecute cada vez que hagas un push:
-
Crear directorios necesarios:
En el root de tu repositorio, crea un directorio oculto llamado
.github
, y dentro de este, otro llamadoworkflows
. -
Crear archivo de configuración de workflow:
Dentro de
workflows
, crea un archivovalidate-test.yaml
con el siguiente contenido:name: Test Workflow on: push: branches: - '*' jobs: code-validation: runs-on: ubuntu-22.04 steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v2 with: go-version: 1.18 - name: Install dependencies run: go mod vendor working-directory: github-tracker - name: Run tests run: go test ./... working-directory: github-tracker
¿Qué hacer después de configurar el workflow?
Una vez configurado el flujo de trabajo, súbelo a tu repositorio. GitHub Actions comenzará a ejecutar las pruebas automáticas cada vez que hagas un push a cualquier rama. Esto no solo automatiza el proceso de pruebas, sino que también ayuda a garantizar que cada cambio en el código se valide automáticamente antes de fusionarse con el resto del proyecto.
Recomendaciones finales
- Consulta la documentación oficial: Si necesitas más personalización o estás trabajando con otros lenguajes, recurre a la documentación de GitHub Actions.
- Extiende tus pruebas: Asegúrate de agregar más pruebas para cubrir diferentes casos y mejorar la calidad del software.
- Configura otras automatizaciones: GitHub Actions no solo es útil para ejecutar pruebas, sino que puede manejar tareas como despliegues, integraciones y más. ¡Explora sus capacidades!
Esta guía te ha brindado un enfoque básico para empezar a automatizar pruebas en Go usando GitHub Actions. Continuar aprendiendo y experimentando es clave para dominar el potencial completo de las automatizaciones en el desarrollo moderno.