Какой лучший способ передачи данных в Python Unittest Redirected STDIN или Pickle? - PullRequest
5 голосов
/ 29 апреля 2011

Короткий вопрос
Каков наилучший способ получить данные в случае юнит-теста Python?

Фон
Мой проект использует модуль юнит-теста Python в качестве автоматизированного способа выполнить серию тестов, которые должны будут выполняться на многих платах одного типа. Пока что это хорошо подходит для того, для чего был разработан модуль unittest; Суть в том, что каждый тестовый пример должен знать, какую конкретную информацию нужно запускать для хранения в базе данных Django.

Данные, которые необходимо передать, включают в себя серийный номер, который проверял плату, дату и другие вещи такого рода. Стоит отметить, что порядок тестирования плат выбирается человеком, который вытаскивает доску X из коробки, поэтому предсказать серийный номер невозможно.

Мысли
В настоящее время я передаю необходимые данные в и из тестовых случаев через рассол. Этот метод отлично работает в небольшом тестировании, но мое беспокойство заключается в том, что чтение и запись в один и тот же файл более 100 000 раз дает много места для повреждения данных (что не так быстро). Я написал ответ на SO Вопрос , который перенаправляет стандартный ввод таким образом, который, я думаю, может хорошо работать и для этого приложения.

Следующим шагом будет обернуть GUI вокруг этих тестов. Личной целью было бы иметь возможность запускать тесты через командную строку, а затем вызывать в GUI те же функции командной строки. По этой причине я склоняюсь к переходу на перенаправленный стандартный ввод.

Информация о системе / развертывании
Требуемая поддержка ОС: Windows XP и Windows 7
Идеальная поддержка ОС: Mac OS X и Linux
Версия Python: 2.7

Любые мысли или комментарии будут с благодарностью.

1 Ответ

2 голосов
/ 30 апреля 2011

Я создал юнит-тесты, которые тестируются на стороннем сервисе (Zoho CRM).Чтобы протестировать сервисный API, вам необходимо сохранить имена пользователей и пароли.

Поскольку это сервис премиум-класса и вы создаете программное обеспечение с открытым исходным кодом, естественно, вы не можете жестко закодировать свои учетные данные для входа в сам исходный код.

Так что я в итоге использовал переменные окружения - работают довольно хорошо:

Вот пример:

https://github.com/miohtama/mfabrik.zoho/blob/master/mfabrik/zoho/tests.py

Как большая проблема, я думаюпытаться заставить модуль модульных тестов делать то, чего он не должен был делать в первую очередь, не очень хорошая идея.Возможно, вам следует попытаться написать свой собственный модуль для тестирования, который бы где-нибудь делал необходимые приготовления (извлечение информации, сохранение результатов).

...