У меня есть небольшой веб-парсер на Python, который зависит от BeautifSoup https://github.com/fgregg/legistar-scrape. Мои тесты успешно выполняются локально, но на travis-ci Nosetests сразу же выдает ошибку, потому что не может найти BeautifulSoup, который, похоже, только что завершил установку.
Журнал сборки Travis-CI здесь: https://travis-ci.org/fgregg/legistar-scrape/jobs/5628189
Какие-либо предложения?
Ответ 1 · рейтинг 1 · hughdbrown
Рекомендация
Измените это:
install: "sudo pip install -r requirements.txt"
к этому:
install: "pip install -r requirements.txt"
Проверьте использование здесь.
Доказательство концепции
Я разветвил ваш проект на github, добавил свою вилку в свою учетную запись travis-ci, внес предложенное мной изменение, зафиксировал и отправил на github. Вот две успешные сборки travis-ci: python 2.6 и python 2.7.
Virtualenvs
Вы используете virtualenv для разработки на Python? Или вы используете sudo pip install -r requirements.txt при локальном запуске? Я бы порекомендовал вам изучить virtualenvs и прекратить использование sudo pip install. Это то, что сейчас делает большинство разработчиков Python. Вот как работает travis-ci: он создает virtualenv и запускает из него ваше приложение.
Тесты на нос
По отдельности, ваши тесты на носу действительно медленные, потому что вы тестируете интеграцию - вы попадаете на живые серверы в Интернете, верно? Узнайте, как использовать фиктивную библиотеку, чтобы вы имитировали HTML, возвращаемый с ваших URL-адресов, а не фактически ударяя по этим серверам.