Brzmi jak poręczne miejsce dla ładowarki testowej.
Wyjazd http://docs.python.org/library/unittest.html#unittest.TestLoader.loadTestsFromName
Jeśli podasz jakieś odpowiednie konwencje nazewnictwa prawdopodobnie można tworzyć apartamentów na podstawie swoich badań konwencji nazewnictwa.
Jeśli mam test A, który jest uruchamiany w systemach AIX, Linux (wszystkie) i 32-bitowe, przetestuj B, który działa w systemach Windows 64, Linux 64 i Solaris, i przetestuj C, który działa we wszystkim poza HPUX i testuj D który działa na wszystkich ... Jaka jest możliwa konwencja nazewnictwa?
class TestA_AIX_Linux2_Win32(unittest.TestCase):
class TestB_Win64_Linux64_Solaris(unittest.TestCase):
class TestC_AIX_Linux2_Win32_Win64_Linux64_Solaris(unittest.TestCase):
class TestD_All(unittest.TestCase):
Najtrudniejszą częścią jest "nie HP/UX". Unikanie negatywnej logiki ułatwia życie. W takim przypadku wystarczy wymienić wszystkie systemy operacyjne, które nie są HP/UX. Lista jest dość krótka i rośnie powoli.
"Wszystkie" testy są po prostu oddzielnym wyszukiwaniem tekstu, które jest połączone z listą testów obecnej platformy w celu utworzenia kompletnego zestawu.
Można spróbować czegoś podobnego
class TextC_XHPUX(unittest.TestCase):
Reguła dopasowywania tekst jest normalnie "_someOSName"
; twoimi wyjątkami byłby dziwny filtr tekstowy, który mógłby zadzierać z nazwą "_X"
.
"Nie możemy mieć pozytywnej listy systemów operacyjnych. Co się stanie, jeśli dodamy nowy system operacyjny? Czy musimy zmienić nazwę każdego testu, aby jednoznacznie go uwzględnić?" Tak. Nowy rynek systemów operacyjnych rozwija się powoli, nie jest to bolesne w zarządzaniu.
Alternatywą jest uwzględnienie informacji w obrębie każdej klasy (tj. Funkcji klasy) lub dekoratora i użycie niestandardowego programu ładującego klasy, który ocenia funkcję klasy.
SkipTest jest również w nosie, z bardzo poręczną opcją --no-skip. – Almad