Запуск юнит-теста на python в Google Cloud Build - PullRequest
1 голос
/ 06 марта 2019

Я бы хотел, чтобы Google Cloud Build запустил модульный тест, который у меня есть в моем проекте Python после внесения изменений.Я могу настроить шаг, на котором выполняется тест, но я не уверен, как ввести каталог, в котором хранится тест, и если я просто поставлю ., тогда он запустит 0 тест

, моя структура проекта:- имя_проекта - имя_пакета - test - sample_test.py

Это моя cloudbuild.yaml конфигурация:

steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: ["run","gcr.io/google-appengine/python","python3","-m","unittest","discover","--verbose","-s","./package_name/test/","-p","*_test.py"]
      id:   unittest

Приведенное выше сообщение не работает:

raise ImportError('Start directory is not importable: %r' % start_dir)
ImportError: Start directory is not importable: './package_name/test/'
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: exit status 1
Show debug panel

Иесли я заменю папку только на ., она запустится, но не обнаружит никаких тестов.Для копирования кода в gs buckets мы используем gsutil, а затем ./package_name копирует пакет в корзину. Локально это, конечно, работает

Как понять, какова правильная структура папок для моих тестов?Спасибо!

1 Ответ

1 голос
/ 02 мая 2019
  1. Почему вы используете appengine контейнер?Почему бы просто не использовать официальный контейнер Python - name: python:3.7?Шаги выполняются как Docker-контейнеры, и я не вижу причин для запуска Docker в Docker, когда вы хотите запустить Docker-контейнер.Попробуйте это:
steps:
  - name: python:3.7
    args: ["python","-m","unittest","discover","--verbose","-s","./package_name/test/","-p","*_test.py"]
    id: unittest
Кроме того, у вас есть __init__.py файл в каталоге ./package_name/test?Сообщение directory is not importable обычно означает, что этот каталог не является пакетом Python из-за отсутствия файла __init__.py.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...