Ошибка при запуске Python тестов на Jenkins

pycharm
jenkins
python
webdriver
selenium
Теги: #<Tag:0x00007fedc7452f88> #<Tag:0x00007fedc7452e48> #<Tag:0x00007fedc7452d08> #<Tag:0x00007fedc7452bc8> #<Tag:0x00007fedc7452a60>

(Ivan Pletin) #1

Пишу тесты на python + unittest. Тесты для Seleinium Webdriver. Тесты все рабочие, при запуске из Pycharm или из консоли все работает корректно.
Решил научится использовать Jenkins. Запускаю его локально из браузера.

Так выглядят конфигурации проекта, который я пытаюсь запустить

Вот Console Output

Я подозреваю, что ошибка у меня в этом месте. Но какой должна быть команда для запуска файла, я не знаю


(Yaroslav Pernerovskyy) #2

А вы пробовали прочитать текст ошибки в консоли и пофиксить ее?


(Ivan Pletin) #3

признаюсь откровенно, этот пост последняя идея, которая у меня осталась. уверяю вас, если бы я знал как это исправить, я бы не писал сюда


(Виталий Коряков) #4

Так ошибка то про другое. Не про метод запуска в дженкиинсе, а про кодировку в конкретном месте.
Отдельно тест лендака запускали? Отдельно работает? Что в строчке/методе, куда указывает ошибка?


(Ivan Pletin) #5

так в том то и дело, что работает, если запускать из пайчарма или из консоли.
вот строка на которую он ругается


(Bolatbek) #6



(Mykhailo Poliarush) #7

Надо читать о юникоде http://farmdev.com/talks/unicode/


(Ivan Pletin) #8

Я так понял, что в Дженкинс нужно дополнительно подключать все модули, которые я использую в тестах. Правильно?


(Pavel Yasonov) #9

Не силен в питоне, но предположу что вы используете разные версии в пайчарме и в системе, на которой стоит jenkins. Скажем 2,7 и 3,4. Разрабатывайте в той же среде, где и запускаете


(Евгений Бухгаммер) #10

Когда ты пишешь в jenkins что-то вроде
python testsuite.py - ты уверен, какая именно версия python при этом запускается?
Когда jenkins ты вообще пишешь какую-то строку - ты знаешь, из под какого пользователя и с какими правами она будет запущена? а какая будет начальная рабочая директория? Если аналогичный код работает в Pycharm и не работает в jenkins - говорит лишь о том, что окружения запуска - разные.

  1. Код ошибки ругается на символы, скорее всего кириллические, у тебя в коде. Убедись, что в коде, если это Python 2, есть shebang в начале файла, в котором эта ошибка возникает.
# -*- coding: utf-8 -*- 

Если подобная ошибка не возникает в Pycharm, то там просто у твоего проекта или в целом по умолчанию может стоять Python 3 версии.

  1. Исходя из этого нужно ответить себе на вопрос: сколько в среде, где запускается Jenkins установлено версий Python.
  2. Процессы в Jenkins запускаются от имени сервиса - а значит и сервис запущен от лица какого-либо пользователя. Пользователям свойствены наборы переменных окружения. Если ты неявно запускаешь Питон как python - для запуска из под разных пользователей этот алиас может запускать абсолютно разные программы. Поэтому в целях дебага укажи абсолютный путь до исполнительного файла python.exe.
    Пример: /usr/bin/python3 testsuite.py
    Пример2: C:\Python3\python.exe testsuite.py
  3. Всегда читай сообщения интерпретатора и пытайся понять что они говорят. Без этого навыка далеко не уехать.

p.s. зачем вам python builder? Можете объяснить, зачем вы его используете? Судя по логам, вы пользуетесь ubuntu. Просто интересно услышать точку зрения, зачем нужен этот плагин.