Я создал свою группу тестов Python, используя формат Python unittest
.Как сортировать тесты проверки python unittest?
Теперь я могу запускать их с
python -m unittest discover -s TestDirectory -p '*.py' -v
Я находит их всех, и управляет ими.
Теперь есть тонкая разница, выполняю ли я тесты в Windows или Linux. Действительно, в Windows тесты выполняются в алфавитном порядке, тогда как в Linux тесты выполняются без видимого определенного для человека порядка обнаружения, даже если они всегда одинаковы.
Проблема в том, что я опирался на первые две буквы тестового файла для сортировки порядка выполнения тестов. Не то, чтобы их нужно запускать в определенном порядке, но иметь какие-то информационные тесты, показывая данные о версии на своем выходе, чтобы они отображались сначала в журнале тестового запуска.
Есть ли что-то, что я могу сделать, чтобы запустить тесты также в алфавитном порядке на Linux?
Вы пытаетесь использовать носеты? я удивляюсь, что запущенные носеты напрямую будут иметь значение. Я не использую обнаружение от unittest, потому что носеты могут делать это довольно хорошо. ты это пробовал? – CppLearner
Просто попробовал. Похоже, тесты сортируются по Linux. Благодарю. Но я бы хотел не заставлять разработчиков устанавливать нос, а просто использовать простой python со встроенным 'unittest'. –
Когда я запускаю это для своих модульных тестов в Linux, он сортирует их в следующем порядке: сначала по имени файла или каталога, подчиненному по имени класса, подчиненному именем test (method). Дело в том, что при запуске тестов сначала отображаются тестер * имена *, который является только последним подзаголовком и не отображается с каким-либо логическим порядком. Я просто хочу проверить, что ваш кажущийся не-упорядочение на самом деле является указанным выше методом file/directory-class-method? – Evert