У меня есть следующая структура проекта:
/root
/tests
common_test_case.py
test_case_1.py
test_case_2.py
...
project_file.py
...
Каждый тест test_case_...
наследуется от unittest.TestCase
и common_test_case.CommonTestCase
.Класс CommonTestCase
содержит методы испытаний, которые должны выполняться всеми тестами (хотя используются данные, уникальные для каждого теста, которые хранятся и доступны в self.something
теста).Если для конкретного теста требуются некоторые конкретные тесты, они добавляются непосредственно в этот конкретный класс.
В настоящее время я работаю над добавлением регистрации в мои тесты.Помимо прочего, я хотел бы записать в журнал класс, из которого был запущен метод (поскольку вышеупомянутый подход подразумевает одно и то же имя метода тестирования для разных классов).Я хотел бы использовать встроенный модуль logging для достижения этой цели.
Я пробовал следующие атрибуты LogRecord : %(filename)s
, %(module)s
,%(pathname)s
.Тем не менее, для методов, определенных в common_test_case.py
, все они возвращают путь / имя к common_test_case.py
, а не к тестовому модулю, из которого они фактически выполнялись.
Мои вопросы:
- Есть ли способ достичь того, что я пытаюсь сделать, используя только встроенный
logging
модуль? - Используя какой-то сторонний / другой модуль (я думал, может быть, какое-то "хакерское" решение с
inspect
)? - Можно ли вообще достичь (в Python)?