Указание имен в командной строке, как предполагают другие ответы, работает и полезно. Однако, когда я пишу тесты, я часто обнаруживаю, что хочу запустить только тот тест, над которым я работаю, и имена, которые мне придется писать в командной строке, становятся довольно длинными и громоздкими для написания. . В таком случае я предпочитаю использовать собственный декоратор и флаг.
Я определяю wipd
(«декоратор незавершенного производства») так:
from nose.plugins.attrib import attr
def wipd(f):
return attr('wip')(f)
Это определяет декоратор, @wipd
который будет устанавливать wip
атрибут на объекты, которые он украшает. Например:
import unittest
class Test(unittest.TestCase):
@wipd
def test_something(self):
pass
Затем -a wip
можно использовать в командной строке, чтобы сузить выполнение теста до тех, которые отмечены значком @wipd
.
Обратите внимание на имена ...
Я использую имя @wipd
декоратора, @wip
чтобы избежать проблем такого рода:
import unittest
class Test(unittest.TestCase):
from mymodule import wip
@wip
def test_something(self):
pass
def test_something_else(self):
pass
import
Сделает wip
декоратор членом класса , и все тесты в классе будут выбраны. В attrib
проверяют вставные родительский класс методы испытания , чтобы увидеть , если атрибут выбран , существует также и атрибуты, которые создаются и испытанные attrib
не существуют в отделенном пространстве. Итак, если вы тестируете, -a foo
а ваш класс содержит foo = "platypus"
, тогда все тесты в классе будут выбраны плагином.