Действительно ли возможно заставить Нос только запустить тесты, которые являются подклассами TestCase или TestSuite (как unittest.main ())

Моя среда тестирования в настоящее время основана на утилите исполнителя тестов, которая самой получена из Eclipse pydev исполнитель тестов Python. Я переключаюсь для использования Носа, который имеет многие функции моего пользовательского исполнителя тестов, но, кажется, лучший качественный код.

Мой набор тестов включает много абстрактных тестовых классов, которые ранее никогда не работали. Стандартный Python testrunner (и мой пользовательский) только выполнил экземпляры unittest. TestCase и unittest. TestSuite.

Я заметил, что, так как я переключился, чтобы Рыться, это выполняет примерно что-либо, что запускает с имени "тест", который является раздражающим..., потому что соглашение о присвоении имен, которое мы использовали для теста-mixins также, похоже на тестовый класс, чтобы Рыться. Ранее они никогда не работали как тесты, потому что они не были экземплярами TestCase или TestSuite.

Очевидно, я мог переименовать методы для исключения слова "тест" из их имен..., которые будут требовать времени, потому что среда тестирования является очень большой и имеет большое наследование. С другой стороны, это было бы аккуратно, если бы был способ заставить Нос только видеть TestCases и TestSuites, как являющийся выполнимым... и ничто иное.

Это может быть сделано?

6
задан Salim Fadhley 24 June 2010 в 14:37
поделиться

1 ответ

Вы можете попробовать поиграть с опцией -m для nosetests. Из документации:

Тестовый класс - это класс, определенный в тестовом модуле, который соответствует testMatch или является подклассом unittest.TestCase

-m устанавливает, что testMatch, таким образом вы можете запретить тестирование всего, что начинается с test.

Другое дело, что вы можете добавить __test__ = False в объявление класса вашего тестового случая, чтобы пометить его как "не тест".

6
ответ дан 10 December 2019 в 02:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: