Test-First Programming ¿en Bash & Shell Scripting?

Hace unos días, me sorprendí notablemente cuando Jorge, mi compañero del Sudacas Team, me comentó que investigando sobre TDD, terminaba de encontrar un framework para Unit Testing en Bash y Shell Scripting.

Sin pérdidas de tiempo, inmediatamente fui a ver de que se trataba shUnit2, el framework para Test Unitarios en Bash y Shell Scripting.

Resulta que shUnit2 está basado en jUnit y entre otros Sistemas Operativos, soporta GNU/Linux, FreeBSD y OpenSolaris. Cabe destacar que posee una lista aceptable de asserts y soporta métodos setUp() y tearDown().

La última versión estable (al 22 de enero de 2012) es la 2.0.3 (que data de 2007) y a la fecha, se encuentra en desarrollo la versión 2.1.x. Lógicamente, se distribuye con licencia LGPL (Software Libre) y se encuentra perfectamente documentado y con sus FAQ correspondientes.

shUnit2 en Debian GNU/Linux

Se puede instalar mediante :~# aptitude install shunit2 u obtener el binario de la versión estable (.deb).

Guías, tutoriales y manuales de shUnit2

  • Shell Unit Testing by Maciej Bliziński | PDF

Un ejemplo simple

Un test simple sobre una función que suma dos números pasados como parámetros.

sumar_dos_numeros.sh (el archivo a testear)

#!/bin/bash

sumar_dos_numeros() {
    n1=$1
    n2=$2
    resultado=`expr $n1 + $n2`
    echo $resultado
}

sumar_dos_numeros_test.sh (el test)

#!/bin/bash

source sumar_dos_numeros.sh         # llamada al script a ser testeado

test_sumar_dos_numeros_con_5y2_esperando_7() {
    resultado=$(sumar_dos_numeros 5 2)  # llama a la función a testear
    assertEquals '7' $resultado         # comprueba el resultado (test)
}

source /usr/share/shunit2/shunit2  # llamada al framework

Al ejecutar sumar_dos_numeros_test.sh, correrá el Test, arrojando un resultado como el siguiente:

2 pensamientos en “Test-First Programming ¿en Bash & Shell Scripting?

  1. Vaya bueno Eugenia, mejor comienzo no podías tener, por cierto, te mando recuerdos de un colega (wakaru) que está ahora conmigo y vio tu conferencia en Chile, dice que eres una crack -;)

    Abrazos !!

Los comentarios están cerrados.