Pruebas de scripts de Bash con Bats
Escriba pruebas automatizadas para sus scripts de shell con el framework de pruebas Bats y detecte regresiones antes de que lleguen a producción.
Pruebas de scripts de Bash con Bats es una lección gratuita de Linux Command Line & Bash Scripting Mastery en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Linux Command Line & Bash Scripting Mastery, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Linux Command Line & Bash Scripting Mastery incluye 4 lecciones en total.
¿Por qué probar los scripts del shell?
Los scripts que se ejecutan sin supervisión (cron, CI) pueden fallar silenciosamente. Las pruebas automatizadas verifican el comportamiento para que los cambios no rompan el código que funciona.
Introducción a Bats
Bats (Bash Automated Testing System) es un framework compatible con TAP para probar código del shell. Las pruebas son archivos de Bash.
# Install on Debian/Ubuntu
sudo apt-get install batsAnatomía de un archivo de prueba
Un archivo de Bats termina en .bats y define las pruebas con la palabra clave @test y una descripción.
@test "addition works" {
result=$(( 2 + 2 ))
[ "$result" -eq 4 ]
}Ejecutar pruebas
Ejecute un archivo o un directorio completo con el comando bats. Una prueba se supera cuando todos los comandos que contiene terminan con el código 0.
bats test/
bats math.batsEl asistente run
El comando run ejecuta un comando y captura su código de salida en $status y su salida en $output sin abortar la prueba.
@test "ls succeeds" {
run ls /tmp
[ "$status" -eq 0 ]
}Comprobar la salida
Compare $output con el texto esperado. También puede indexar líneas específicas con ${lines[0]}.
@test "echo prints hello" {
run echo hello
[ "$output" = "hello" ]
}Probar casos de error
Las buenas pruebas también comprueban las rutas de error. Verifique un $status distinto de cero cuando un comando deba fallar.
@test "missing file fails" {
run cat /no/such/file
[ "$status" -ne 0 ]
}Configuración y limpieza
Defina las funciones setup() y teardown(), que se ejecutan antes y después de CADA prueba para preparar y limpiar los recursos de prueba.
setup() {
TMP=$(mktemp -d)
}
teardown() {
rm -rf "$TMP"
}Cargar el código que se está probando
Para probar funciones, cargue su script para que sus funciones estén disponibles y, a continuación, llámelas directamente dentro de las pruebas.
setup() {
source ./lib/utils.sh
}
@test "slugify lowercases" {
run slugify "Hello World"
[ "$output" = "hello-world" ]
}Omitir y dejar pruebas pendientes
Utilice skip para marcar una prueba como aún no implementada o no compatible con la plataforma actual, con un motivo opcional.
@test "windows-only feature" {
skip "not supported on Linux"
}Integración con CI
Como bats devuelve un código de salida distinto de cero cuando falla, se integra directamente en las canalizaciones de CI como una barrera previa al despliegue.
# CI step
bats --tap test/ || exit 1Comprobación rápida
Compruebe sus conocimientos sobre Bats.
Resumen
Ahora puede probar Bash con Bats:
- Defina pruebas con
@test; se superan cuando todos los comandos terminan con el código 0 - Utilice
runpara capturar$statusy$output - Prepare los recursos de prueba con
setup/teardown - Cargue scripts para probar funciones y controlar CI según los resultados
Preguntas frecuentes
¿La lección «Pruebas de scripts de Bash con Bats» es gratis?
Sí — el texto completo de «Pruebas de scripts de Bash con Bats» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Linux Command Line & Bash Scripting Mastery, actualiza a CoddyKit PRO. El curso de Linux Command Line & Bash Scripting Mastery incluye 4 lecciones en total.
¿Qué aprenderé en «Pruebas de scripts de Bash con Bats»?
Escriba pruebas automatizadas para sus scripts de shell con el framework de pruebas Bats y detecte regresiones antes de que lleguen a producción. Practicas Linux Command Line & Bash Scripting Mastery con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Linux Command Line & Bash Scripting Mastery?
No se requiere experiencia previa. Linux Command Line & Bash Scripting Mastery en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Pruebas de scripts de Bash con Bats»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Linux Command Line & Bash Scripting Mastery?
Sí. Cada lección de Linux Command Line & Bash Scripting Mastery incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Depuración de scripts de Bash (set -x, trap)
- Gestión de errores y estado de salida
- Buenas prácticas y linting en scripts
- Pruebas de scripts de Bash con Bats