2012-09-11 10 views
6

Nase supports test generators. Aber die Dokumentation sagt:Konflikte zwischen Einheitstest und Nasengerüsten

Bitte beachten Sie, dass die Methode Generatoren werden nicht unterstützt in unittest.TestCase Subklassen

Das bedeutet, alle meine Testgeneratoren außerhalb von unittest Rahmen sein muss.

Frage: sollte ich noch das unittest Framework für diese Tests verwenden, wo ich kann? Oder sollte ich aus Gründen der Konsistenz unittest ganz aufgeben?

Und warum nicht unterstützt nose Testgeneratoren innerhalb unittest.TestCase? Es scheint den größten Vorteil von nose zu zerstören: dass es eine Erweiterung eher als Ersatz für unittest ist, so bietet zusätzliche Vorteile, ohne eine der Funktionen von unittest zur Verfügung gestellt. Oder fehlt mir etwas?

Und eine verwandte Frage. Wenn ich unittest vollständig verwarf, sollte ich meine Tests in globale Funktionen oder in eine neue Klassenhierarchie einfügen?

+0

Ich brauchte etwas ähnliches wie Testgeneratoren und endete mit [Nase-parametrisierte] (https://github.com/wolever/nose-parameterized). Die Dekoratorsyntax war viel sauberer und es funktionierte mit "unittest.TestCase". –

Antwort

5

In der Nase, die fehlende Unterstützung für funkier Arten von Tests in unittest.TestCases ist beabsichtigt - die Idee war, dass die Nase Test von unittest.TestCases genau sammeln sollte als Unittest der Fall ist. Wahrscheinlich war das eine schlechte Idee, aber es ist sehr unwahrscheinlich, dass sich das jetzt ändert.

Also, solange es Ihnen nichts ausmacht, ein bisschen auf der Höhe der Zeit zu sein, würde ich vorschlagen, Nase2. nose2 diskriminiert nicht und unterstützt alle Arten von Test-Plugins für alle Arten von Tests. Docs sind auf RTD: http://nose2.readthedocs.org/en/latest/index.html, downloads auf pypi: http://pypi.python.org/pypi/nose2/0.4.1.