Skip to content

LevLevel/homework4

Repository files navigation

Лев Загрецкий Автоматизированное тестирование Python Инструкция или как пользоваться этим репозиторием

Этот репозиторий был создан для студентов, которые хотят изучить автоматизированное тестирование на Python. Репозиторий имеет определенную структуру и правила, которым студенты должны следовать, чтобы все работало так, как это задумывалось.

/pyXX20XX
├── .github
│   ├── workflows                 <-- Здесь лежат файлы для проверки вашего кода и запуска автоматических тестов 
│   │   ├── flake8.yaml
│   │   ├── ...
├── config
│   ├── tasks.json                <-- Файл конфигурации для запуска автотестов
├── homeworks                     <-- Папка с домашними заданиями
│   ├── hw5                       <-- Папка с домашним заданием #5
│   │   ├── hw5_solution.py       <-- Файл с решением для домашнего задания #5
│   ├── ...
│   ├── hw7                       <-- Папка с домашним заданием #7
│   │   ├── bulls_and_cows        <-- Папка для 1й задачи домашнего задания #7
│   │   │   ├── hw7_solution.py   <-- Файл с решением для домашнего задания #7
│   ├── ...
├── tests
│   ├── test_hw5.py               <-- Тесты для домашнего задания #5
│   ├── ...
│   ├── test_hw7.py               <-- Тесты для домашнего задания #7
│   ├── ...
├── .gitignore
├── README.md
├── conftest.py
├── requirements.txt
└── LICENSE
  1. Используйте этот репозиторий как темплейт для Вашего проекта. Для этого необходимо нажать на кнопку "Use this template", а потом "Create a new repository".
  2. Копия репозитория должна повиться у Вас в аккаунте GitHub.
  3. Сделайте clone Вашего репозитория на локальный компьютер.
    $ git clone https://github.com/<user-name>/<repository>.git
  1. (*) Включить GitHub Actions, если они выключены. По умолчанию GitHub отключает forkflows в GitHub Action в репозиториях которые были форкнуты(fork). Чтобы включить forkflows GitHub Action, откройте вкладку Actions вашего репозитория <repository> и нажмите на большую зеленую кнопку: I understand my forkflows, go ahead and enable them

Все последующие шаги необходимо делать, только после того, как вы склонировали репозиторий на локальный компьютер.

  1. Перед началом использования создайте виртуальное окружение и установите необходимые зависимости
    $ python3 -m venv ./venv
    $ source venv/bin/activate
    $ python3 -m pip install -r requirements.txt

Рассмотрим на примере домашнего задания #5, она состоит из 10 задач. Для того чтобы сдать домашнюю работу - необходимо успешно выполнить все задания. Работа считается принятой - ВСЕ автоматические проверки прошли успешно.

  1. Создайте новую ветку
    $ git checkout -b homework5
  1. Для выполнения, перейдите в папку hw5, она находится в папке homeworks.
    $ cd homeworks/hw5
  1. Создайте папку(-и) и файл, если их нету(для первых домашних работ они уже созданы). Для последующих домашних работ папки и файлы необходимо будет создавать самостоятельно.
    $ mkdir hw5
    $ cd hw5
    $ touch hw5_solution.py
    $ touch __init__.py
  1. Напишите решения задач

Пример: Вам необходимо разработать программу, которая добавляет ing к словам

  • В файле hw5_solution.py, найдите функцию add_ing
def add_ing(s: str) -> str:
    pass
  • В переменную s будет передаваться строка к которой Вам надо будет добавить окончание ing
  • Удалите ключевое слово pass
def add_ing(s: str) -> str:
  • Напишите Ваш код, который будет решать эту задачу
def add_ing(s: str) -> str:
    s += 'ing'
  • Верните результат работы функции по средствам использования ключевого слова return
def add_ing(s: str) -> str:
    s += 'ing'
    return s
  1. Запустите автотесты и линтеры
  2. Если все предыдущие проверки прошли успешно, то добавьте файл(изменения в нем) в отслеживаемые(индексируемые) Git
    $ git add .

или

    $ git add hw5_solution.py
  1. Зафиксируйте изменения по средством коммита
    $ git commit -am <commit message>
  1. Загрузите изменения на СВОЙ удаленный репозиторий GitHub'a
    $ git push -u origin homework5
  1. Создайте Pull Request из рабочей ветки(homework5) в основную ветку(main | master) ВАШЕГО репозитория. Название pull request'a должно быть следующим: Homework5: <Name> <Surname>
  2. Подождите пока не пройдут(ушпешно!) все автоматические проверки
  3. Если все хорошо, то можете делать слияние ваших изменений в основную ветку репозитория

Note: Начиная с домашней работы #7, необходимо будет создавать вложенные папки, на пример: homeworks/hw7/bulls_and_cows.py, в которых и будет располагаться файлы с решениями для конкретной задачи.

Note 2: Вы всегда можете посмотреть на тесты(например HW#5: tests/test_hw5.py), которые будут запускаться для проверки Вашей работы.

Note 3: Смотрите на импорты вверху модуля с тестами, они всегда подскажут Вам какая структура проекта, название модулей, функций, методов и классов ожидается.

(*) Это действие должно было быть пройденным еще во время работы над HW#3, если вы уже это сделали, то сейчас его можно пропустить.

Для упрощения и большей автоматизации, в репозитории лежит скрипт run_all.sh который умеет запускать линтеры и автоматичесике тесты на локальном компьютере, так что Вы еще до создания pull request'a сможете посмотреть что и где надо исправить.

Прочитайте пару статей про линтеры и зачем они нужны:

Тесты включаются посредством флага в файле config/tasks.json. Перед запуском тестов PyTest считывает, файл конфигурации и по необходимости отключает необходимый модуль.

  • "hw5": true - включает тесты для домашней работы #5
  • "hw5": false - выключает тесты для домашней работы #5
  1. Для того чтобы все работало, Вам необходимо находиться в ветке homework5
  2. Необходимо дать права на выполнение скрипту
    $ chmod +x run_all.sh
  1. Запустить скрипт
    $ ./run_all.sh

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •