Запуск модульных тестов Django на Bamboo с помощью Postgresql

Я использую Django 1.9.6. Например, у меня в models.py файле есть такая модель:

class Question(BaseModel):
    question_text = models.CharField(max_length=500, unique=True)

    class Meta:
        verbose_name = 'Question'
        verbose_name_plural = 'Questions'

    def __unicode__(self):
        return (
            u"Question id: {}".format(self.id)
        )

и в tests.py я провожу на нем следующий тест:

class TestQuestionModel(TestCase):

    def setUp(self):
        Question.objects.create(question_text="What is the airspeed velocity of an unladen swallow?")

    def test_simple_questions(self):
        simpleQuestion = Question.objects.get(question_text="What is the airspeed velocity of an unladen swallow?")
        self.assertEqual(simpleQuestion.question_text, "What is the airspeed velocity of an unladen swallow?")

И я использую базу данных postgres. Все это работает локально.

Я понимаю, что мне нужно преобразовать вывод в JUnit XML для запуска тестов в Bamboo, но я немного застрял. Этот ответ помог мне на 90% пути, но я изо всех сил пытаюсь понять часть postgres. Сценарий, который я запускаю перед анализатором JUnit, выглядит следующим образом:

#installing pip locally
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py --root=${bamboo.build.working.directory}/tmp --ignore-installed
export PATH=${bamboo.build.working.directory}/tmp/usr/local/bin:$PATH
export PYTHONPATH=${bamboo.build.working.directory}/tmp/usr/local/lib/python2.7/dist-packages:$PYTHONPATH
echo Pip is located `which pip`

# setting up virtualenv
pip install --root=${bamboo.build.working.directory}/tmp --ignore-installed virtualenv
virtualenv .
. bin/activate

# get pg_config
apt-get install libpq-dev python-dev

# from the backend/Dockerfile
pip install --no-cache-dir -r requirements.txt

# running tests into JUnit XML format
python ./manage.py test --junitxml=test-reports\results.xml

И я получаю несколько ошибок:

E: Не удалось открыть файл блокировки / var / lib / dpkg / lock - open (13: В доступе отказано) E: Невозможно заблокировать административный каталог (/ var / lib / dpkg /), вы root?

Команда "python setup.py egg_info" завершилась неудачно с кодом ошибки 1 в / tmp / pip-build-ZV8Jz0 / psycopg2 /

Traceback (последний вызов последним): файл "./manage.py", строка 6, из django.core.management import execute_from_command_line ImportError: нет модуля с именем django.core.management

Может ли кто-нибудь помочь мне преодолеть это?


person wogsland    schedule 16.05.2017    source источник
comment
Обычно эта ошибка означает, что вам нужно запустить какую-то команду в повышенном режиме. Попробуйте добавить sudo в строку python get-pip.py ....   -  person Igonato    schedule 05.06.2017
comment
Кроме того, можете ли вы добавить к вопросу полный журнал сборки? Не только ошибки   -  person Igonato    schedule 05.06.2017
comment
@Igonato sudo не помогает, а полный журнал сборки состоит из тысяч строк. Это всего лишь небольшая часть сборки.   -  person wogsland    schedule 05.06.2017
comment
Ok. Попробуйте еще раз: sudo apt-get install libpq-dev python-dev. Я не заметил этого в первый раз, почти уверен, что это мог быть преступник. Вы должны хотя бы включить журнал ошибок. В противном случае это просто угадайка.   -  person Igonato    schedule 05.06.2017