Automatización de Pruebas en Go con GitHub Actions
Clase 8 de 30 • Curso de Ciberseguridad para Desarrollo Web
Contenido del curso
- 11

Integración de GitHub Webhooks y AWS para Gestión de Commits
02:24 - 12

Gestión de Infraestructura como Código con Terraform en AWS
09:34 - 13

Infraestructura como Código con Terraform y Makefiles
17:44 - 14

Automatización de Infraestructura con Terraform: Roles y Políticas en AWS
06:03 - 15

Implementación de buckets y funciones Lambda con Terraform y AWS S3
16:44 - 16

Configuración de Bases de Datos en AWS con VPC y Seguridad IP
14:10 - 17

Configuración de Lambdas en VPC usando Terraform
12:29 - 18

Configuración de API Gateway para Lambdas en AWS
05:42
- 19

Configuración de Autenticación con Auth0 en Aplicaciones Web
07:14 - 20

Implementación de Authorizer con Auth0 en AWS Lambda
16:56 - 21

Conexión y Configuración de Lambda con AWS y Postgres
13:35 - 22

Configuración de Endpoints y Políticas en AWS con Terraform
11:27 - 23

Validación de Webhooks desde GitHub usando User Agent
12:08 - 24

Validación de Webhooks de GitHub con AWS Secrets Manager
14:32
¿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 tidyEste comando actualiza las dependencias en
go.modygo.sum. -
Actualizar el directorio del vendor:
go mod vendorRecolecta las dependencias y las coloca en el directorio
vendor. -
Resolver inconsistencias:
go mod verifyVerifica 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.goen 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
requiredel paquetetestifysi 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.yamlcon 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.