Рубрики
Без рубрики

Pytest с действиями GitHub

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть все последние контент, будь … Помечено новичками, Python, 100daysofPython.

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть все последние контент, обязательно Посетите мой блог и подпишитесь на мою рассылку. Подпишись на меня в Твиттере .

Это 20 день # 100Дейсппинтового вызова.

Этот пост будет построить предыдущую работу, проделанную в Тестирование блока Python с Pteest пост добавить Действие GitHub Для проведения тестовых заданий Runner на кнопочном событии на REPO.

Конечный код проекта можно найти на моем Github repo Отказ

Предварительные условия

  1. Знакомство с Пиронв . Посмотреть здесь Для моего поста на Пипенве.
  2. Читать Тестирование блока 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

Здесь мы делаем пару вещей:

  1. Создание вызова задания Pteest Отказ
  2. Запуск этой работы на толчок событие на хранилище.
  3. Беги за работу на Ubuntu-Neighle Отказ
  4. Установка пользовательской тайм-аута 10 минут (хотя и это накладки, не стесняйтесь опустить).
  5. Настройка среды Python для последней в версии 3.x Отказ
  6. Установить Пипнв и колесо Отказ
  7. Установите зависимости с помощью кэша, установленного хеш-хестом LOCKFILE.
  8. Запуск тестового набора, который мы настроим команду и проверены ранее.

Это все, что нам нужно для этого репо, чтобы работать!

Убедитесь, что на этом этапе вы настроили свой собственный пульт отдыха на репо.

На этом этапе все, что нам нужно сделать, это зафиксировать код и подтолкнуть репо, и задание будет доступна под вкладкой Действия в UI Github.

Резюме

Сегодняшний пост продемонстрировал, как использовать действия GitHub для тестирования кода Python на кнопке на удаленный репозиторий. Мы использовали pteest Френда тестирования для проверки нашего кода.

Ресурсы и дальнейшее чтение

  1. ABC of Pipenv
  2. Пиронв
  3. Действия GitHub
  4. Создание действия Python GitHub
  5. Последний проект
  6. Тестирование блока Python с Pтойцем

Фото кредит: Amseaman

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

Оригинал: “https://dev.to/okeeffed/pytest-with-github-actions-74o”