Bash-komentosarjojen testaaminen Batsilla
Kirjoita shell-komentosarjoillesi automaattisia testejä Bats-testauskehyksellä, jotta löydät regressiot ennen niiden päätymistä tuotantoon.
Bash-komentosarjojen testaaminen Batsilla on ilmainen Linux-komentorivin ja Bash-komentosarjojen hallinta-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Linux-komentorivin ja Bash-komentosarjojen hallinta-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Linux-komentorivin ja Bash-komentosarjojen hallinta-kurssilla on yhteensä 4 oppituntia.
Miksi komentotulkin komentosarjoja testataan?
Ilman valvontaa suoritettavat komentosarjat (cron, CI) voivat epäonnistua huomaamatta. Automaattiset testit varmistavat toiminnan, jotta muutokset eivät riko toimivaa koodia.
Bats-esittely
Bats (Bash Automated Testing System) on TAP-yhteensopiva komentotulkin koodin testauskehys. Testit ovat itsessään Bash-tiedostoja.
# Install on Debian/Ubuntu
sudo apt-get install batsTestitiedoston rakenne
Bats-tiedoston pääte on .bats, ja testit määritellään @test-avainsanalla sekä kuvauksella.
@test "addition works" {
result=$(( 2 + 2 ))
[ "$result" -eq 4 ]
}Testien suorittaminen
Suorittakaa tiedosto tai kokonainen hakemisto bats-komennolla. Testi onnistuu, kun jokainen sen sisällä suoritettu komento päättyy arvoon 0.
bats test/
bats math.batsrun-apufunktio
run-komento suorittaa komennon ja tallentaa sen paluuarvon muuttujaan $status sekä tulosteen muuttujaan $output keskeyttämättä testiä.
@test "ls succeeds" {
run ls /tmp
[ "$status" -eq 0 ]
}Tulosteen tarkistaminen
Verratkaa $output-muuttujaa odotettuun tekstiin. Voitte myös käyttää tiettyjä rivejä indeksin avulla, esimerkiksi ${lines[0]}.
@test "echo prints hello" {
run echo hello
[ "$output" = "hello" ]
}Virhetilanteiden testaaminen
Hyvissä testeissä tarkistetaan myös virhepolut. Varmistakaa, että $status on nollasta poikkeava, kun komennon pitäisi epäonnistua.
@test "missing file fails" {
run cat /no/such/file
[ "$status" -ne 0 ]
}Alustus ja siivous
Määritelkää setup()- ja teardown()-funktiot, jotka suoritetaan ENNEN jokaista testiä ja jokaisen testin JÄLKEEN testiaineiston valmistelemiseksi ja siivoamiseksi.
setup() {
TMP=$(mktemp -d)
}
teardown() {
rm -rf "$TMP"
}Testattavan koodin lataaminen
Testataksenne funktioita ladatkaa komentosarjanne, jotta sen funktiot ovat käytettävissä, ja kutsukaa niitä sitten suoraan testeissä.
setup() {
source ./lib/utils.sh
}
@test "slugify lowercases" {
run slugify "Hello World"
[ "$output" = "hello-world" ]
}Testien ohittaminen ja odottavat testit
Käyttäkää komentoa skip merkitsemään testi vielä toteuttamattomaksi tai nykyisellä alustalla tukemattomaksi. Voitte antaa myös valinnaisen syyn.
@test "windows-only feature" {
skip "not supported on Linux"
}Integrointi CI:hin
Koska bats palauttaa epäonnistuessaan nollasta poikkeavan paluuarvon, se voidaan liittää suoraan CI-putkiin käyttöönottoa edeltäväksi portinvartijaksi.
# CI step
bats --tap test/ || exit 1Pikatarkistus
Testatkaa Batsia koskevat tietonne.
Kertaus
Osaatte nyt testata Bashia Batsilla:
- Määritelkää testit komennolla
@test; testi onnistuu, kun kaikki komennot päättyvät arvoon 0 - Käyttäkää komentoa
runtallentamaan$statusja$output - Valmistelkaa testiaineisto funktioilla
setup/teardown - Ladatkaa komentosarjat funktioiden testaamista varten ja käyttäkää tuloksia CI-putken portinvartijana
Opi Bash tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 22
- Oppitunnit
- 88
Usein kysytyt kysymykset
Onko oppitunti ”Bash-komentosarjojen testaaminen Batsilla” ilmainen?
Kyllä – oppitunnin ”Bash-komentosarjojen testaaminen Batsilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Linux-komentorivin ja Bash-komentosarjojen hallinta-kurssin, päivitä CoddyKit PROhon. Linux-komentorivin ja Bash-komentosarjojen hallinta-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Bash-komentosarjojen testaaminen Batsilla”?
Kirjoita shell-komentosarjoillesi automaattisia testejä Bats-testauskehyksellä, jotta löydät regressiot ennen niiden päätymistä tuotantoon. Harjoittelet Linux-komentorivin ja Bash-komentosarjojen hallinta-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Linux-komentorivin ja Bash-komentosarjojen hallinta-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Linux-komentorivin ja Bash-komentosarjojen hallinta-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Bash-komentosarjojen testaaminen Batsilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Linux-komentorivin ja Bash-komentosarjojen hallinta-oppitunnilla?
Kyllä. Jokainen Linux-komentorivin ja Bash-komentosarjojen hallinta-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Bash-komentosarjojen virheenkorjaus (set -x, trap)
- Virheenkäsittely ja lopetustila
- Komentosarjojen parhaat käytännöt ja linting
- Bash-komentosarjojen testaaminen Batsilla