Fixtures autouse

Introducere în testarea în Python

Alexander Levin

Data Scientist

Argumentul autouse

  • Argument boolean opțional al unui fixture
  • Poate fi transmis decoratorului de fixture
  • Cu autouse=True, funcția fixture se execută indiferent de o cerere
  • Reduce numărul de apeluri redundante ale fixture-urilor
Introducere în testarea în Python

Când se utilizează

Când trebuie aplicate anumite pregătiri sau modificări de mediu pentru toate testele.

De exemplu, când dorim să garantăm că toate testele:

  • Au aceleași date
  • Au aceleași conexiuni (date, API etc.)
  • Au aceeași configurare a mediului
  • Au un monitor, jurnalizare sau profilare

Astfel de cazuri trebuie gestionate cu argumentul „autouse".

Introducere în testarea în Python

Exemplu autouse

Exemplu de fixture cu "autouse":

import pytest
import pandas as pd

# Autoused fixture
@pytest.fixture(autouse=True)
def set_pd_options():
    pd.set_option('display.max_columns', 5000)

# Test function
def test_pd_options():
    assert pd.get_option('display.max_columns') == 5000
Introducere în testarea în Python

Exemplu incorect autouse

Exemplu incorect de fixture cu "autouse":

import pytest
import pandas as pd

# Wrong autoused fixture
@pytest.fixture(autouse=True)
def wrong_fixture():
    return [1,2,3,4,5]

# Test function
def test_type():
    assert type(wrong_fixture) == list

Exemplu corectat al fixture-ului:

import pytest
import pandas as pd

# Wrong autoused fixture
@pytest.fixture
def correct_fixture():
    return [1,2,3,4,5]

# Test function
def test_type(correct_fixture):
    assert type(correct_fixture) == list
Introducere în testarea în Python

Exemplu autouse: rezultat

Rezultatul exemplului:

Exemplu de ieșire autouse

Introducere în testarea în Python

Rezumat

  • Definiția autouse: Argument boolean opțional al decoratorului de fixture
  • Utilizare: @pytest.fixture(autouse=True)
  • Avantaj: Reduce numărul de apeluri redundante ale fixture-urilor, simplificând codul
  • Caracteristică: Cu autouse=True, funcția fixture se execută indiferent de o cerere
  • Când se folosește: Când trebuie aplicate pregătiri sau modificări de mediu
  • Exemple de cazuri de utilizare:
    • Citirea și pregătirea datelor pentru toate testele
    • Configurarea conexiunilor și a parametrilor de mediu
    • Implementarea unui monitor, logger sau profiler
Introducere în testarea în Python

Să exersăm!

Introducere în testarea în Python

Preparing Video For Download...