Обнаружение тестовых упаковок, созданных динамически при запуске модуля UnittestPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обнаружение тестовых упаковок, созданных динамически при запуске модуля Unittest

Сообщение Anonymous »

Я столкнулся с проблемой. В своей ситуации я динамически создаю тестовые шкалы < /p>
class TestMetrics(unittest.TestCase):
@staticmethod
def generate_test(test: ElementaryTestCase):
def test_instance(self):
...
self.assertLessEqual(...)
...
return test_instance
< /code>
, а затем в корпус модуля добавить другую функцию Generate_test в класс TestMetrics < /p>
tests_query = prepare_test_query()

for test in tests_query:
formatted_test_name = '_'.join(test.test_name.strip().split())
test_method = TestMetrics.generate_test(test)
test_name = f'test_{formatted_test_name}'

setattr(TestMetrics, test_name, test_method)
< /code>
Это работает нормально, когда я начинаю свои тесты с unittest.main (), но теперь моя цель -запустить их, поскольку он должен использовать Python3 -m unittest test_modulename, но он, очевидно, видит 0 Тесты.
Я хочу попытаться разветвлять его с Allure, поэтому мне нужна эта возможность, чтобы начать тесты по умолчанию.
Есть ли какое -либо решение, как сделать Unittest См. Сгенерированные тесты?import unittest

class TestExample(unittest.TestCase):
@staticmethod
def generate_test(*args):
def test_instance(self):
a,b = args
self.assertEqual(a, b)
return test_instance

values = [
(1, 1, 'example'),
(12, 12, 'another_example'),
(0, 5, 'fail_test')
]

for val in values:
test_name = 'test_' + val[-1]
test_method = TestExample.generate_test(*val[:2])
setattr(TestExample, test_name, test_method)

unittest.main()


Подробнее здесь: https://stackoverflow.com/questions/794 ... est-module
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»