Podawanie nazw w wierszu poleceń, tak jak sugerują inne odpowiedzi, działa i jest przydatne. Jednak kiedy jestem w trakcie pisania testów, często stwierdzam, że chcę uruchomić tylko test, nad którym pracuję, a nazwy, które musiałbym pisać w wierszu poleceń, stają się dość długie i kłopotliwe w pisaniu . W takim przypadku wolę użyć niestandardowego dekoratora i flagi.
Definiuję wipd
("dekorator w toku") w ten sposób:
from nose.plugins.attrib import attr
def wipd(f):
return attr('wip')(f)
Definiuje dekorator, @wipd
który ustawi wip
atrybut na obiektach, które zdobi. Na przykład:
import unittest
class Test(unittest.TestCase):
@wipd
def test_something(self):
pass
Następnie -a wip
można użyć w wierszu poleceń, aby zawęzić wykonanie testu do tych oznaczonych @wipd
.
Uwaga dotycząca nazw ...
Używam nazwy @wipd
dla dekoratora, zamiast @wip
uniknąć tego rodzaju problemu:
import unittest
class Test(unittest.TestCase):
from mymodule import wip
@wip
def test_something(self):
pass
def test_something_else(self):
pass
Dzięki import
temu wip
dekorator stanie się członkiem klasy , a wszystkie testy w tej klasie zostaną wybrane. Te attrib
kontrole plugin klasa dominująca metody testowej, aby sprawdzić, czy wybrany atrybut istnieje tam i atrybuty, które są tworzone i testowane przez attrib
nie istnieją w wydzielonej przestrzeni. Więc jeśli testujesz z, -a foo
a twoja klasa zawiera foo = "platypus"
, wszystkie testy w klasie zostaną wybrane przez wtyczkę.