AKTUALIZACE 2019-03-01:Moje preference jsou nyní netopýři. Používám ho několik let na malých projektech. Líbí se mi čistá, stručná syntaxe. Neintegroval jsem jej do rámců CI/CD, ale jeho výstupní stav odráží celkový úspěch/selhání sady, což je lepší než shunit2, jak je popsáno níže.
PŘEDCHOZÍ ODPOVĚĎ:
Používám shunit2 pro skripty shellu související s webovou aplikací Java/Ruby v prostředí Linuxu. Jeho použití bylo snadné a nepředstavovalo žádnou velkou odchylku od ostatních xUnit frameworků.
Nezkoušel jsem integraci s CruiseControl nebo Hudson/Jenkins, ale při implementaci nepřetržité integrace jinými prostředky jsem narazil na tyto problémy:
- Stav ukončení:Když testovací sada selže, shunit2 nepoužívá ke sdělení selhání nenulový stav ukončení. Takže musíte buď analyzovat výstup shunit2, abyste určili, zda sada vyhovuje/nevyhovuje, nebo změnit shunit2 tak, aby se choval tak, jak očekávají některé rámce pro kontinuální integraci, a komunikuje s vyhověním/neúspěchem prostřednictvím stavu ukončení.
- Protokoly XML:shunit2 nevytváří protokol výsledků XML ve stylu JUnit.
Zajímalo by mě, proč se nikdo nezmínil o BATS. Je aktuální a kompatibilní s TAP.
Popište:
#!/usr/bin/env bats
@test "addition using bc" {
result="$(echo 2+2 | bc)"
[ "$result" -eq 4 ]
}
Spustit:
$ bats addition.bats
✓ addition using bc
1 tests, 0 failures