Sto provando a creare la classe Base con diverse impostazioni necessarie per i miei test. Voglio che tutti i miei test siano ereditati da questa classe Base. Come corridore io uso py.test.py.test non raccoglie test non ereditati da "oggetto"
Ma quando sto cercando di farlo, py.test non raccoglie questi test ereditati dalla classe Base e di conseguenza non li esegue. Non ho trovato alcuna informazione utile nella documentazione.
Forse qualcuno ha dovuto affrontare tali problemi prima? Qualche idea?
Grazie.
P.S. Quando i test vengono ereditati dall'oggetto , tutto funziona correttamente. Py.test li vedi ed eseguono correttamente.
Esempio di codice:
La mia classe di base:
class BaseClass(object):
"""BaseClass"""
def __init__(self):
super(BaseClass, self).__init__()
self.bla = 'bla'
La mia classe di prova:
import pytest
from base_class import BaseClass
class TestSmth(BaseClass):
def test_test(self):
test_instatnce = TestSmth()
print test_instatnce.bla
if __name__ == '__main__':
pytest.main([__file__, '-v'])
uscita:
============================= test session starts ==============================
platform darwin -- Python 2.7.2 -- pytest-2.3.3 -- /usr/bin/python
collecting ... collected 0 items
=============================== in 0.01 seconds ===============================
[Finished in 0.4s]
Alex, Grazie! Questo è esattamente ciò di cui ho bisogno! –
Le funzioni di fixture sono ordinate per scope, quindi tutte le fixate con classe verranno eseguite prima di quelle con scope funzionale. All'interno di ogni ambito l'ordine non è definito, potrebbe essere alfabetico ma sarebbe co-incidentale. – hpk42
@ hpk42, È in ordine alfabetico all'interno di una classe. :) Puoi provarlo tu stesso: https://bitbucket.org/alex_okrushko/pytest-class-init-order/commits/e3f316d6597c57e22a82362643197140 –