Вказання імен у командному рядку, як і інші відповіді, дозволяє припустити, що це працює і є корисним. Однак, коли я в розпалі написання тестів, я часто виявляю, що хочу запустити лише тест, над яким я працюю, і імена, які мені доведеться написати в командному рядку, стають досить довгими і громіздкими для написання . У такому випадку я вважаю за краще використовувати спеціальний декоратор та прапор.
Я визначаю 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"
, то всі тести в класі будуть вибиратися плагіном.