Ich verwende Python Nose und möchte den Typ des durchgeführten Tests drucken, z. B. ob es sich um einen Doctest oder einen Unittest handelt oder nicht. Wie kann das gemacht werden?

Vielen Dank.

0
vinay polisetti 9 Okt. 2012 im 11:09

3 Antworten

Beste Antwort

Sie können Ihr eigenes Plugin erstellen, um den gedruckten Namen des Tests zu ändern. Wenn Sie dann das ausführliche Flag verwenden, wird der Testtyp gedruckt. Versuchen Sie so etwas:

from nose.plugins import Plugin
import doctest

class CustomName(Plugin):
    def describeTest(self, test):
        if isinstance(test, doctest.DocTestCase):
            return "Doctest: %s" % test
        else:
            return "Unittest: %s" % test

Führen Sie es nach der Installation wie folgt aus:

nosetests --with-customname -sv test_directory

Seien Sie gewarnt, dies ist ungetestet.

1
dbn 3 Jän. 2013 im 02:44

Dies könnte ein wenig zerbrechlich sein. Beachten Sie jedoch, dass Nosetests nur über Unittest liegen

import inspect

def is_nose_test():
    assert "nose" in inspect.stack()[1][1]
0
Peter Vierstrom 9 Okt. 2012 im 07:26

Die Verwendung von --with-doctests bedeutet, dass Sie Doctests ausführen. Alles außerhalb eines Doktests kann als Komponententest betrachtet werden. AFAIK, sie schließen sich nicht gegenseitig aus, sodass Sie nicht genau sagen können, welche Sie ausführen, wenn Sie --with-doctests aktiviert haben.

Allerdings sind Doctests im Allgemeinen eine Form von Unit-Tests, daher bin ich mir nicht ganz sicher, welches Ziel Sie damit erreichen wollen.

1
Demian Brecht 9 Okt. 2012 im 07:32