Testa ett kursrepo
Detta är för de som utvecklar och testar kursrepon.
I varje kursrepo kan finnas en fil .dbwebb.tests
. Varje rad i filen är ett kommando som exekveras som en del i en testsuite. Kommandot måste returnera exit status 0 för att betraktas om en lyckad assertion.
$ dbwebb testrepo $ dbwebb --force testrepo $ dbwebb --force --silent testrepo $ dbwebb --force --silent --verbose testrepo $ dbwebb --force --silent --verbose --local testrepo
Optionen --force
gör att du kan köra om testsuiten utan att först radera me
katalogen.
Optionen --silent
minimerar utskrifter från kommandone, i princip skickas all utskrift till &> /dev/null
och man får en renare vy av testerna.
Optionen --verbose
är bra vid felsökning. Det visar testfallet tillsammans med en rad som visar det modifierade kommandot som körs vid testfallet. Ett kommando kan modifieras för att hantera utskrifter eller för att hantera om kommandot körs lokalt eller mot servern.
Optionen --local
innebär att testerna körs mot den lokala utvecklingsmiljön. Det innebär att kommandon som dbwebb validate lab1
skrivs om till make dbwebb-validate arg1=lab1
och använder den lokala utveckligsmiljön som följer med varje kursrepo.
#Syntaxen i en testsuite
Så här kan en fil .dbwebb.tests
se ut.
# Init
dbwebb init-me
# Kmom01 lab1
dbwebb recreate lab1
cd me/kmom01/lab1 && ./answer.py; [[ $? = 42 ]]
Varje rad innehåller ett kommando som kan exekveras av dbwebb-cli via ett subshell som bash -c
. En sådan rad kallas för en assertion. En assertion måste leverera ett exitvärde av 0 för att betraktas som lyckad.
En rad kan också vara tom eller börja med en #
för kommentarsrader.
Du kan se exempel på testfiler i kursrepo för oopython och htmlphp.