Я использую Python 3.4.1 и модуль unittest для проверки другого программного обеспечения.
Другая часть программного обеспечения должна быть запущена, и ее выходные данные должны быть проанализированы скриптом Python для проверки. Выходной файл представляет собой файл XML, содержащий неизвестное количество элементов.
На данный момент я использую subTest()
a> для создания одного подтеста для каждого элемента XML. Это не совсем то, что я хочу.
Я хотел бы создать один метод test_* для каждого элемента в файле XML. Проблема в том, что я заранее не знаю, сколько элементов будет, поэтому мне нужен способ автоматического добавления новых методов test_* в юниттест. Я думал о наличии метода setUpClass(), который вызывал бы внешнее программное обеспечение для генерации XML и создания списка обновлений тестовых* методов, которые необходимо запустить.
Но я думаю, что методы добавляются в список методов unittest для запуска до выполнения чего-либо, поэтому, как только я доберусь до точки, где я добавлю новые методы (например, используя setattr()
изнутри setUpClass()
), список уже построен, а новые методы никогда не запускаются...
Можно ли динамически изменять список методов для запуска в unittest?
Спасибо!
py.test
. Но что именно делаетsubTest
проблемой? Кажется, он делает то, что вы хотите? - person Simeon Visser   schedule 28.08.2014subTest
близко, но не совсем; каждый элемент ‹test›/test› на самом деле является результатом модульного теста программного обеспечения. Я хотел бы сопоставить тесты с обеих сторон, а не совмещать кучу тестов программного обеспечения с одним тестом в python... - person big_gie   schedule 28.08.2014