Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть все последние контент, обязательно Посетите мой блог и подпишитесь на мою рассылку. Подпишись на меня в Твиттере .
Это 20 день # 100Дейсппинтового вызова.
Этот пост будет построить предыдущую работу, проделанную в Тестирование блока Python с Pteest пост добавить Действие GitHub Для проведения тестовых заданий Runner на кнопочном событии на REPO.
Конечный код проекта можно найти на моем Github repo Отказ
Предварительные условия
- Знакомство с Пиронв . Посмотреть здесь Для моего поста на Пипенве.
- Читать Тестирование блока Python С pteest. Если вы незнакомы с Python.
Начиная
Давайте клонировать оригинальное pytest repo в Hello-Pytest-Github-действия
Отказ
$ git clone https://github.com/okeeffed/hello-pytest.git hello-pytest-github-actions $ cd hello-pytest-github-actions # Install the deps $ pipenv install # Prepare the file for the GitHub action $ mkdir -p .github/workflows $ touch .github/workflows/pytest.yml
На этом этапе мы можем проверить, что наш REPO работает правильно с Pтойцей локально:
$ pipenv run pytest ============================== test session starts ============================== platform darwin -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 rootdir: /path/to/code/blog-projects/hello-pytest collected 3 items tests/test_math.py ... [100%] =============================== 3 passed in 0.01s ===============================
На этом этапе мы готовы настроить вещи для нашего Github Action!
Добавление тестового скрипта
В Pipfile
Мы хотим добавить [скрипты]
Раздел, чтобы добавить Тест
Сценарий:
[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] [dev-packages] pytest = "*" [requires] python_version = "3.9" [scripts] test = "pytest"
Что Тест
Сценарий просто позвонит pteest
Отказ Мы будем использовать этот скрипт в нашем действии GitHub.
Для того, чтобы также подготовить действие нашего GitHub, чтобы дать нам больше информации о вебезе, мы также будем проходить -В
Флаг нашему звонку к pteest
Отказ
Мы можем проверить вещи, которые работают, как ожидалось, запуская Pipenv Run Test -V
С нашего терминала:
$ pipenv run test -v ========================== test session starts =========================== platform darwin -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- /Users/dennisokeeffe/code/blog-projects/hello-pytest/.venv/bin/python cachedir: .pytest_cache rootdir: /Users/dennisokeeffe/code/blog-projects/hello-pytest-github-actions collected 3 items tests/test_math.py::test_add PASSED [ 33%] tests/test_math.py::test_subtract PASSED [ 66%] tests/test_math.py::test_multiply PASSED [100%] =========================== 3 passed in 0.02s ============================
Полосовый флаг дает нам дополнительную информацию о том, какой тест бежал и прошел. Это может быть полезно для отладки в CI.
Добавление действия GitHub
Теперь мы готовы добавить действие GitHub. В пределах .Гитеб/рабочие процессы/pytest.yml
Файл, который мы создали ранее, добавьте следующее:
# .github/workflows/app.yaml name: PyTest on: push jobs: test: runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Check out repository code uses: actions/checkout@v2 # Setup Python (faster than using Python container) - name: Setup Python uses: actions/setup-python@v2 with: python-version: "3.x" - name: Install pipenv run: | python -m pip install --upgrade pipenv wheel - id: cache-pipenv uses: actions/cache@v1 with: path: ~/.local/share/virtualenvs key: ${{ runner.os }}-pipenv-${{ hashFiles('**/Pipfile.lock') }} - name: Install dependencies if: steps.cache-pipenv.outputs.cache-hit != 'true' run: | pipenv install --deploy --dev - name: Run test suite run: | pipenv run test -v
Здесь мы делаем пару вещей:
- Создание вызова задания
Pteest
Отказ - Запуск этой работы на
толчок
событие на хранилище. - Беги за работу на
Ubuntu-Neighle
Отказ - Установка пользовательской тайм-аута 10 минут (хотя и это накладки, не стесняйтесь опустить).
- Настройка среды Python для последней в версии
3.x
Отказ - Установить
Пипнв
иколесо
Отказ - Установите зависимости с помощью кэша, установленного хеш-хестом LOCKFILE.
- Запуск тестового набора, который мы настроим команду и проверены ранее.
Это все, что нам нужно для этого репо, чтобы работать!
Убедитесь, что на этом этапе вы настроили свой собственный пульт отдыха на репо.
На этом этапе все, что нам нужно сделать, это зафиксировать код и подтолкнуть репо, и задание будет доступна под вкладкой Действия в UI Github.
Резюме
Сегодняшний пост продемонстрировал, как использовать действия GitHub для тестирования кода Python на кнопке на удаленный репозиторий. Мы использовали pteest
Френда тестирования для проверки нашего кода.
Ресурсы и дальнейшее чтение
- ABC of Pipenv
- Пиронв
- Действия GitHub
- Создание действия Python GitHub
- Последний проект
- Тестирование блока Python с Pтойцем
Фото кредит: Amseaman
Первоначально опубликовано на моем блог . Чтобы увидеть новые посты без задержки, прочитайте сообщения там и подпишитесь на мою рассылку.
Оригинал: “https://dev.to/okeeffed/pytest-with-github-actions-74o”