Аннотации носа Python

#python #nose

#python #нос

Вопрос:

Я хочу пометить каждый отдельный тестовый пример аннотациями @SmokeTest или @LoadTest @RegressionTest или @LongRunningTest .

Можно ли будет классифицировать каждый тестовый пример по одной из следующих категорий, используя Python nose, которые предоставляют аннотации?

  1. Тест дыма
  2. Нагрузочный тест
  3. Регрессия
  4. Длительный тест Я хочу добавить ярлык к каждому отдельному тестовому варианту, пожалуйста, предоставьте свои предложения. http://pythontesting.net/framework/nose/nose-introduction /

Ответ №1:

Добавьте атрибуты с помощью @attr . @attr могут быть установлены и для классов так же, как показано ниже, если вы хотите запустить весь класс

См.: http://nose.readthedocs.org/en/latest/plugins/attrib.html

 from nose.plugins.attrib import attr

@attr('smoke')
def test_awesome_1():
    # your test...
@attr('load')
def test_awesome_2():
    # your test...
@attr('regression')
def test_awesome_3():
    # your test...
@attr('regression')
def test_awesome_4():
    # your test...
  

а затем запустите его как

 nosetests -a 'smoke'            #Runs test_awesome_1 only
nosetests -a 'load'             #Runs test_awesome_2 only
nosetests -a 'regression'       #Runs test_awesome_3 and test_awesome_4
  

Ответ №2:

Трудно точно сказать, о чем вы спрашиваете, но похоже, что вы, возможно, ищете встроенный плагин nose Attrib, который позволяет устанавливать атрибуты для тестов (и выбирать группы тестов на основе атрибутов).

Ответ №3:

Добавьте атрибуты, используемые @attr для обозначения тестовых примеров, а также классов с аннотациями:

 from nose.plugins.attrib import attr

    @attr(priority='first')
    def test_support_1():
        #test details...

    @attr(priority='second')
    def test_support_2():
        #test details...
  

Запустите его как:

 nosetests -a priority=first
nosetests -a priority=second
  

В Python 2.6 и выше, @attr могут быть установлены для классов, как показано ниже:

     @attr(priority='sanity')
    class MyTestCase:
       def test_support_1(self):
         pass
       def test_support_2(self):
         pass
  

Запустите его как:

 nosetests -a priority=sanity