2012-09-11 17 views
6

Nos supports test generators. Ale dokumentacja mówi:Konflikty między ramami unittest i nose

Należy pamiętać, że generatory metody nie są obsługiwane w unittest.TestCase podklasy

Oznacza to, że wszystkie moje generatory testowe muszą być poza unittest ram.

Pytanie: czy nadal powinienem używać ram unittest dla tych testów, gdzie mogę? A może powinienem, z powodów spójności, całkowicie zrezygnować z unittest?

Dlaczego więc nose nie obsługuje generatorów testowych w zakresie unittest.TestCase? Wygląda na to, aby zniszczyć największą zaletą nose: że jest to przedłużenie zamiast wymiana dla unittest, oferując w ten sposób dodatkowe korzyści bez zabierając żadnej z funkcji oferowanych przez unittest. Czy może czegoś brakuje?

I powiązane pytanie. Jeśli całkowicie zrezygnuję z unittest, czy powinienem umieścić testy w funkcjach globalnych lub w jakiejś nowej hierarchii klas?

+0

Potrzebowałem czegoś podobnego do testowania generatorów i skończyło się na [sparametryzowanym] nosku (https://github.com/wolever/nose-parameterized). Składnia dekoratora była o wiele czystsza i działała z 'unittest.TestCase'. –

Odpowiedz

5

w nosie, brak wsparcia dla funkier rodzajów testów w unittest.TestCases jest zamierzona - Chodziło o to, że nos powinien zbierać testu z unittest.TestCases dokładnie jak unittest robi. Prawdopodobnie był to zły pomysł, ale teraz jest bardzo mało prawdopodobne, aby się teraz zmienił.

Tak długo, jak nie przeszkadza ci bycie na krawędzi krwawienia, sugeruję wypróbowanie nose2. nose2 nie dyskryminuje i wspiera wszelkiego rodzaju wtyczki testowe do wszelkiego rodzaju testów. Dokumenty są dostępne na stronie rtd: http://nose2.readthedocs.org/en/latest/index.html, pliki do pobrania na stronie pypi: http://pypi.python.org/pypi/nose2/0.4.1.