Code Monkey home page Code Monkey logo

todo-list's Introduction

Сборка и запуск проекта

Сборка фронтенда на React:

cd client && npm install && [npm run dev | npm run build]

Запуск тестов на фронтенд:

cd client && npm test

Запуск E2E тестов на Cypress:

cd client && npm run e2e

Запуск бекэнд сервера:

python manage.py runserver

Запуск всех тестов (включая Selenium); всех, кроме Selenium; только Selenium:

python manage.py test
python manage.py test server/unittests
python manage.py test selenium-e2e

Для запуска тестов с помощью pytest с генерацией отчета для Allure:

pytest --alluredir=./allure/report
allure serve ./allure/report

Приложение деплоится с помощью интеграции Heroku с Github. Ссылка на деплой. Альтернативно, можно использовать job heroku-deploy в закомментированной секции файла с описанными actions.

Homework check list

1. Тестирование Frontend

Main часть:

  • Создать репозиторий на GitHub, в котором создать папку client
  • В папке client создать приложение на React / Angular / Vue фреймворке на ваш выбор.
  • Должно содержать несколько страниц с роутингом
  • Содержит сервис, который общается с node.js бекендом. (общается с Django бэкендом)
  • Присутствуют unit, component и e2e тесты в минимальном количестве 1шт каждый.

Advanced часть:

  • Приложение содержит авторизацию и не собрано из генераторов вида JHipster.
  • Написаны тесты для проверки авторизации
  • Существует нескольно наборов тестов (несколько suites)

Bonus часть:

  • Рассмотрены Cypress и Selenium
  • Примеры с каждым из фреймворков.
  • Короткая статья или заметки в чем именно для вас кажутся основные отличия.
  • Делаете в своем репозитории на GitHub активным GitHub pages и размещаете эту статью там.

2. Тестирование Backend

Main часть:

  • Сделать сервис на Java+Spring+любая DB (или NodeJS + DI tool) (используется Django).
  • Написать Unit и Component тесты для этого сервиса.
  • Использовать TestContainers для одного теста с DB. (не уверен, насколько применимо к Django)
  • Использовать Mockito для мокирования тестов с внешним сервисом. (использованы другие средства мокирования)
  • Написать документацию(README) какие тесты еще необходимо написать, но вы не успели.

Advanced часть:

  • Сделать взаимодействие сервиса и вашего Frontend приложения.
  • Сделать тесты на авторизацию.
  • Создать отдельные Spring Test Configruation, которые можно переключать с помощью флага при запуске тестов.
  • Сделать генерацию тестовой документации через Asci Doctor(Spring Rest Docs).

Bonus часть:

  • Придумать функциональность, с которой можно использовать очереди/стримы вида RabbitMQ/Kafka streams.
  • Написать компонентные тесты на эту функциональность(используя TestContainers).

3. Github Actions

Main часть:

  • Добавить GitHub action для запуска тестов на UI и Backend по пушу из в master ветку.

Advanced часть:

  • Добавить GitHub action для деплоя приложения UI+BE на Azure/Vercel/Яндекс Облако.

Bonus часть:

  • Использовать Kubernetes в Azure/Яндекс Облаке для разворачивания среды.

4. Allure reporting

Bonus часть:

  • Использовать Allure reporting для написанных тестов.

5. Pact-тестирование

Bonus часть:

  • Написать Pact-тесты к своему сервису.

6. A11Y

Bonus часть:

  • Протестировать свой веб-сайт на а11y с помощью инструментов от Mozilla и Lighthouse.
  • Пофиксить проблемы.
  • Сделать автоматический тест с axe.

7. Selenium

Main часть:

  • Написать e2e тесты, используя Selenide.

Advanced часть:

  • Настроить запуск тестов с Selenoid.

Bonus часть:

  • Настроить генерацию отчетов с Allure report, сделав полный сетап в GitHub: e2e тесты с selenide запускаются с использованием Selenoid на разных окружениях(браузерах) параллельно и собирают отчет с помощью Allure Report.
  • Написать статью как собрать такой сетап.

8. Performance testing

Main часть:

  • Пройти воркшоп и выложить результат в гитхаб репозиторий.

Advanced часть:

  • Настроить CI с Github actions.

Bonus часть:

  • Настроить генерацию отчетов с Allure report.

Каких тестов не хватает

  • Не хватает E2E тестов для тестирования создания нового списка
  • Компонентные тесты на рендер формы создания нового списка
  • Компонентные тесты на рендер формы логина
  • Проверка routing для неавторизованного пользователя

todo-list's People

Contributors

verlorenmind avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.