Preskoči na vsebino

Infrastruktura pytest-odoo

Mapa vsebuje skupno infrastrukturo pytest Odoo 18, ki jo uporabljajo izvajalniki PMIVerse. To so izvedbena navodila, ne nadomestilo kanonične politike testiranja.

Vsebina

  • pmiverse_odoo_addons.py razširi odoo.addons.__path__ iz aktivne konfiguracije Odoo samo za zbiranje testov izvajalnika.
  • pmiverse_pytest_base.py zagotavlja skupno vedenje pytest.
  • conftest.base.py je izvorna predloga za tests/conftest.py dodatkov.
  • pytest.base.ini je izvorna predloga repozitorijske konfiguracije pytest.
  • coverage.addon.rc vsebuje skupne nastavitve pokritosti.
  • templates/ vsebuje predloge testnega paketa, pripravljalnih podatkov in osnovnih preizkusov.

Datoteke kopirajo ali nalagajo skripte v ../../scripts/test/. Testi infrastrukture so v ../../tests/.

Pogodba izvajalnika

Izvajalnik enega dodatka pripravi začasno bazo, namesti ciljni dodatek, izklopi samodejno nalaganje vtičnikov, izrecno naloži pytest-odoo in prednostno zbira prek odoo.addons.<addon>.tests. Testi znotraj pytest ne smejo nameščati, odstranjevati ali posodabljati modulov.

Izbirne integracijske aplikacije navedite v tests/odoo_dependencies.txt, po eno ime dodatka Odoo na vrstico. Prazne vrstice in celovrstični komentarji # so dovoljeni. Izvajalnik enega dodatka in njegov repozitorijski klicatelj samodejno namestita te testne odvisnosti pred pytest, samo v začasnih bazah test_*. Izbirnih aplikacij ne dodajajte v produkcijski manifest samo zaradi testov.

Map dodatkov Odoo ne dodajajte neposredno v PYTHONPATH; dodatek, kot je calendar, lahko zasenči standardno knjižnico Python. V izvor dodatkov ne dodajajte vzdevkov sys.modules za zbiranje. Posebni vtičnik imenskega prostora izvajalnika preprečuje oba vzorca.

Testi dodatkov sodijo v <addon>/tests/, pri ORM uporabljajo pripravljalnik okolja Odoo in registrirano oznako pytest Odoo. Osnovni preizkusi preverjajo nameščenost in dostopnost vnaprej pripravljenega dodatka; ne nameščajo ga sami.

Zagon testov

Običajno uporabite izvajalnike PMIVerse namesto neposrednega pytest ali odoo-bin:

Izvajalniki ustvarjajo in lahko brišejo baze PostgreSQL. Uporabite začasna imena s predpono test_ in izberite samo obravnavane dodatke. Zagon celotnega repozitorija zahteva izrecno odobritev po kanonični politiki PMIVerse.

Ustvarjena .pytest_cache/ in __pycache__/ sta lokalna artefakta in se ne vključujeta v Git.