AGGIORNAMENTO 01-03-2019:ora preferisco i pipistrelli. L'ho usato per alcuni anni su piccoli progetti. Mi piace la sintassi pulita e concisa. Non l'ho integrato con i framework CI/CD, ma il suo stato di uscita riflette il successo/fallimento complessivo della suite, che è migliore di shunit2 come descritto di seguito.
RISPOSTA PRECEDENTE:
Sto usando shunit2 per gli script di shell relativi a un'applicazione Web Java/Ruby in un ambiente Linux. È stato facile da usare e non si discosta molto dagli altri framework xUnit.
Non ho provato l'integrazione con CruiseControl o Hudson/Jenkins, ma implementando l'integrazione continua tramite altri mezzi ho riscontrato questi problemi:
- Stato di uscita:quando una suite di test fallisce, shunit2 non usa uno stato di uscita diverso da zero per comunicare l'errore. Quindi devi analizzare l'output di shunit2 per determinare l'esito positivo/negativo di una suite o modificare shunit2 in modo che si comporti come previsto da alcuni framework di integrazione continua, comunicando l'esito positivo/negativo tramite lo stato di uscita.
- Log XML:shunit2 non produce un log XML dei risultati in stile JUnit.
Mi chiedo perché nessuno abbia menzionato BATS. È aggiornato e conforme a TAP.
Descrivi:
#!/usr/bin/env bats
@test "addition using bc" {
result="$(echo 2+2 | bc)"
[ "$result" -eq 4 ]
}
Esegui:
$ bats addition.bats
✓ addition using bc
1 tests, 0 failures