Especificar nomes na linha de comando, como as outras respostas sugerem, funciona e é útil. No entanto, quando estou escrevendo testes, muitas vezes descubro que quero executar apenas o teste no qual estou trabalhando, e os nomes que eu teria que escrever na linha de comando ficam bem longos e complicados de escrever . Nesse caso, prefiro usar um decorador e uma bandeira personalizados.
Eu defino wipd
("decorador de trabalho em andamento") assim:
from nose.plugins.attrib import attr
def wipd(f):
return attr('wip')(f)
Isso define um decorador @wipd
que definirá o wip
atributo nos objetos que ele decora. Por exemplo:
import unittest
class Test(unittest.TestCase):
@wipd
def test_something(self):
pass
Em seguida, -a wip
pode ser usado na linha de comando para restringir a execução do teste àqueles marcados com @wipd
.
Nota sobre os nomes ...
Estou usando o nome @wipd
do decorador em vez de @wip
evitar este tipo de problema:
import unittest
class Test(unittest.TestCase):
from mymodule import wip
@wip
def test_something(self):
pass
def test_something_else(self):
pass
O import
fará com que o wip
decorador de um membro da classe , e todos os testes na classe será selecionado. O attrib
plug-in verifica a classe pai de um método de teste para ver se o atributo selecionado existe lá também, e os atributos que são criados e testados por attrib
não existem em um espaço segregado. Portanto, se você testar com -a foo
e sua classe contém foo = "platypus"
, todos os testes da classe serão selecionados pelo plug-in.