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