Konwertuję zestaw testów projektu Python z unittest na nos. Istniejąca struktura projektu (oparta na unittest) jest raczej niezgrabna, zawiera wiele wysoce spersonalizowanych kodów do wykrywania i uruchamiania testów, więc staram się migrować do nosa, aby wszystko było usprawnione.Dziedziczenie testów w języku Python: urządzenia testujące jednostki ładunkowe z podklas
Mam jednak do czynienia z problemami z kodem generującym zestawy testów.
Ramy projektu mają dwa sposoby przeprowadzania testów. Jedną z nich jest "prosta" metoda, która pokazuje wszystkie przykłady i tutoriale Nosa i działa. Jednak drugi sposób to poprzez zdefiniowanie klasy testowej, która zawiera całą logikę testową, a następnie tworzenie przypadków testowych w różnych podklas, które zawierają różne konfiguracje ustawień i dziedziczą testy z nadklasy:
class TestSomething(unittest.TestCase):
def test_x(self):
...
def test_y(self):
...
class TestCase1(TestSomething):
def setUp(self):
...
class TestCase2(TestSomething):
def setUp(self):
...
suite = unittest.TestSuite()
cases = [TestCase1,TestCase2]
suite.addTests([unittest.makeSuite(case) for case in cases])
To co nie Nose z. Najpierw próbuje uruchomić metody testowe, co oczywiście nie działa, ponieważ nie istnieje żadna funkcja setUp() w klasie nadrzędnej, a wiele zmiennych używanych w test_x() i test_y() nie zostało jeszcze zdefiniowanych.
Nie znalazłem żadnych przykładów tego zrobionego gdziekolwiek, a dokumentacja Nosa (raczej rzadka i trudna w nawigacji) również nie wspomina o tym. Jak można to wykorzystać do pracy z nosem? Każda pomoc zostanie bardzo doceniona.
Korzystanie z dekorator nosa s zrobił lewę; patrząc wstecz, wydaje się to bardzo oczywiste teraz, ale czasami najbardziej oczywiste rozwiązania są najbardziej nieuchwytne ... wielkie dzięki za wskazówki! – Boris