У меня есть рабочий набор тестов, который работает с Nose.
Недавно я понял, что мне нужно добавить кое-что к моему общему setUp()
, поскольку это запускается переменной, обнаруженной в каждом отдельном тесте (переменная обновляется нашей системой контроля версий).
Я добавил __init__()
в свой BaseTest.py и свой индивидуальный тест. Однако я получаю ValueError: no such test method in <class 'my_test.check_error_test'>: runTest
Судя по поиску в Google, похоже, что это связано с загрузчиком unittest. Но раньше Нос всегда заботился обо всех погрузчиках.
Я предполагаю, что это связано с тем фактом, что я касаюсь атрибута methodName
после того, как Нос установил его, но я не могу понять, что мне нужно установить, ОСОБЕННО, поскольку я использую различные плагины для носа. Или, может быть, есть способ получше. Что мне нужно сделать по-другому?
BaseTest.py
import unittest
class BaseTest(unittest.TestCase):
def __init__(self, methodName='runTest', p4rev=None):
super(BaseTest, self).__init__(methodName)
self.p4rev = p4rev
def setUp(self):
triggerSomething(p4rev)
My_test.py
from BaseTest import BaseTest
rev = '12345'
class CheckError_Test(BaseTest):
def __init__(self, rev):
super(CheckError_Test, self).__init__(p4rev=rev)
dosomething()
ПРИМЕЧАНИЕ. Если я не использую super(BaseTest, self).__init__(methodName)
, я получаю сообщение об ошибке: Attribute error: 'check_error_test' object has no attribute '_testMethodName'
. Следовательно, его включение
Для уточнения: один комментарий предполагает дублирование сообщения, однако связанное сообщение посвящено тому, как запускать тесты в целом, в то время как это сообщение спрашивает, как получить доступ к определенным переменным в рамках данного теста во время выполнения.
rev
присутствует вMy_test.py
, почему вы не можете просто получить к нему доступ как к глобальной переменной, вместо того, чтобы пытаться встроить его в тестовые классы? - person chepner   schedule 01.08.2014Bast_Test
класс нуждается вmy_test.rev
для своегоsetUp()
. Ноmy_test
нужноBast_Test.setUp()
, чтобы бежать ... - person dbJones   schedule 01.08.2014