Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Pytest-Kehys: Automaattisten Testien Asennus ja Suoritus | Pytest-Kehyksen Hallinta
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Pythonin Rakenteellinen Ohjelmointi

bookPytest-Kehys: Automaattisten Testien Asennus ja Suoritus

Asennus

Ensimmäiseksi täytyy asentaa Pytest. Tämä prosessi on suoraviivainen Pythonin paketinhallinnan, pip:n, ansiosta. Avaa komentorivi tai terminaali ja syötä seuraava komento:

pip install pytest

On suositeltavaa tehdä tämä projektin virtuaaliympäristössä.

Syntaksin selitys

Yksi syy siihen, miksi Pytest on niin suosittu Python-yhteisössä, on sen yksinkertainen ja helposti kirjoitettava syntaksi. Toisin kuin jotkin muut testauskehykset, Pytest mahdollistaa testikoodien kirjoittamisen hyvin luettavalla tavalla. Tässä lyhyt yhteenveto:

  • Testitiedostot: pytest tunnistaa tiedostot, jotka alkavat test_ tai päättyvät _test.py;
  • Testifunktiot: funktiot, jotka alkavat test_ näissä tiedostoissa, tunnistetaan automaattisesti testifunktioiksi pytestin toimesta;
  • Väittämät: käytä Pythonin sisäänrakennettua assert-lausetta varmistaaksesi, että tietyt ehdot täyttyvät.

Koodiesimerkit

Soveltakaamme opittua yksinkertaisella esimerkillä. Oletetaan, että meillä on funktio nimeltä add, joka laskee yhteen kaksi lukua. Näin voisimme kirjoittaa sille testin Pytestillä:

# content of test_example.py
def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5
    assert add('space', 'ship') == 'spaceship'

Tämä koodiesimerkki näyttää kaksi testiä: yhden luvuilla ja toisen merkkijonoilla. Assert-lausumat tarkistavat, toimiiko funktio odotetulla tavalla.

Testien suorittaminen ja tulosten tulkinta

Testien suorittaminen Pytestillä on erittäin helppoa. Siirry hakemistoon, jossa testitiedosto sijaitsee, ja suorita seuraava komento:

pytest

Pytest löytää ja suorittaa automaattisesti kaikki hakemiston testit ja näyttää raportin, jossa näkyy, läpäisikö vai epäonnistuiko kukin testi. Tässä esimerkki näkymästä:

===================== test session starts ======================
collected 2 items

test_example.py ..                                         [100%]

====================== 2 passed in 0.12s =======================

Jokainen piste edustaa läpäistyä testiä. Pytest antaa yksityiskohtaiset tiedot epäonnistuneista testeistä, mukaan lukien rivinumeron ja syyn epäonnistumiseen, mikä helpottaa ongelmien diagnosointia ja korjaamista.

===================== test session starts ======================
collected 2 items

test_example.py .F                                         [100%]

====================== FAILURES ==========================
____________________ test_add _________________________

    def test_add():
>       assert add(2, 3) == 8
E       AssertionError: assert 5 == 8
E        +  where 5 = add(2, 3)

test_example.py:6: AssertionError
===================== 1 passed, 1 failed in 0.23s ======================

Tulosten tulkinta

  • Passed (.): testi suoritettiin onnistuneesti ja kaikki väittämät olivat True;
  • Failed (F): testissä on väittämiä, jotka eivät olleet True, mikä osoittaa ongelman;
  • Skipped (s): testi ohitettiin, mahdollisesti määritetyn ehdon tai riippuvuuden vuoksi.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

bookPytest-Kehys: Automaattisten Testien Asennus ja Suoritus

Pyyhkäise näyttääksesi valikon

Asennus

Ensimmäiseksi täytyy asentaa Pytest. Tämä prosessi on suoraviivainen Pythonin paketinhallinnan, pip:n, ansiosta. Avaa komentorivi tai terminaali ja syötä seuraava komento:

pip install pytest

On suositeltavaa tehdä tämä projektin virtuaaliympäristössä.

Syntaksin selitys

Yksi syy siihen, miksi Pytest on niin suosittu Python-yhteisössä, on sen yksinkertainen ja helposti kirjoitettava syntaksi. Toisin kuin jotkin muut testauskehykset, Pytest mahdollistaa testikoodien kirjoittamisen hyvin luettavalla tavalla. Tässä lyhyt yhteenveto:

  • Testitiedostot: pytest tunnistaa tiedostot, jotka alkavat test_ tai päättyvät _test.py;
  • Testifunktiot: funktiot, jotka alkavat test_ näissä tiedostoissa, tunnistetaan automaattisesti testifunktioiksi pytestin toimesta;
  • Väittämät: käytä Pythonin sisäänrakennettua assert-lausetta varmistaaksesi, että tietyt ehdot täyttyvät.

Koodiesimerkit

Soveltakaamme opittua yksinkertaisella esimerkillä. Oletetaan, että meillä on funktio nimeltä add, joka laskee yhteen kaksi lukua. Näin voisimme kirjoittaa sille testin Pytestillä:

# content of test_example.py
def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5
    assert add('space', 'ship') == 'spaceship'

Tämä koodiesimerkki näyttää kaksi testiä: yhden luvuilla ja toisen merkkijonoilla. Assert-lausumat tarkistavat, toimiiko funktio odotetulla tavalla.

Testien suorittaminen ja tulosten tulkinta

Testien suorittaminen Pytestillä on erittäin helppoa. Siirry hakemistoon, jossa testitiedosto sijaitsee, ja suorita seuraava komento:

pytest

Pytest löytää ja suorittaa automaattisesti kaikki hakemiston testit ja näyttää raportin, jossa näkyy, läpäisikö vai epäonnistuiko kukin testi. Tässä esimerkki näkymästä:

===================== test session starts ======================
collected 2 items

test_example.py ..                                         [100%]

====================== 2 passed in 0.12s =======================

Jokainen piste edustaa läpäistyä testiä. Pytest antaa yksityiskohtaiset tiedot epäonnistuneista testeistä, mukaan lukien rivinumeron ja syyn epäonnistumiseen, mikä helpottaa ongelmien diagnosointia ja korjaamista.

===================== test session starts ======================
collected 2 items

test_example.py .F                                         [100%]

====================== FAILURES ==========================
____________________ test_add _________________________

    def test_add():
>       assert add(2, 3) == 8
E       AssertionError: assert 5 == 8
E        +  where 5 = add(2, 3)

test_example.py:6: AssertionError
===================== 1 passed, 1 failed in 0.23s ======================

Tulosten tulkinta

  • Passed (.): testi suoritettiin onnistuneesti ja kaikki väittämät olivat True;
  • Failed (F): testissä on väittämiä, jotka eivät olleet True, mikä osoittaa ongelman;
  • Skipped (s): testi ohitettiin, mahdollisesti määritetyn ehdon tai riippuvuuden vuoksi.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2
some-alt