Skip to content

Feature/codequality

Yuri Samoilenko requested to merge feature/codequality into main

Первая итерация по запуску тестов и покрытия.

Rubcocop

  • Добавлен линтер rubocop, его конфиг ./rubocop.yml и скрипт запуска bin/rubocop

Application (config/application.rb)

  • добавлен шаблонизатор slim и его конфигурация
  • изменены параметры скафолдинга (создания шаблоннных сущностей):
    config.generators do |g|
      g.test_framework :rspec,  # теперь RSpec
                       fixtures:         true,   # создавать фабрики
                       view_specs:       false,  # не создавать тесты вьюх
                       helper_specs:     false,  # не создавать тесты хелперов
                       routing_specs:    false,  # не создавать тесты роутинга
                       controller_specs: true,   # создавать тесты контроллеров
                       request_specs:    true    # создавать тесты реквестов
      g.fixture_replacement :factory_bot, dir: 'spec/factories'  # подключаем фабрики тестовых моделей FactoryBot

      g.javascripts = false  # не генерить js для каждого контроллера
      g.helper = false       # не генерить хелперы для каждого контроллера
      g.stylesheets false    # не генерить стили для каждого контроллера
    end
  • настройки локализации и временной зоны

config

  • database.yml и cable.yml удалены из репы, вместо них database.yml.example и cable.yml.example
  • database.yml приведён к продуктовому виду с возможностью задания параметров подключения к бд через переменные окружения

Тесты

  • подключен RSpec и его базовая конфигурация (helpers, matchers)
  • написан тест-заглушка
  • подключен simplecov для подсчета покрытия кода

CI/CD

  • джоба tests:units запущена в пайплайне с использованием postgres:12

Gemfile

  • немного подправлен Gemfile, добавлены полезные гемы:
#пачка гемов для генерации тестовых данных - имен, фамилий, телефонов и чего-угодно
gem 'factory_bot_rails' 
gem 'faker'
gem 'faker-russian'
gem 'ffaker'

# гемы для тестирования
gem 'database_cleaner' # улучшения в работы с БД во время тестов
gem 'parallel_tests'   # распаралеливание тестов - пока не используется

#набор вспомогательных либ для фреймворка rspec
gem 'rspec' 
gem 'rails-controller-testing'
gem 'rspec-collection_matchers'
gem 'rspec-its'
gem 'rspec_junit_formatter'
gem 'rspec-rails'
gem 'rspec-retry'
gem 'rspec-set'
gem 'shoulda-callback-matchers'
gem 'shoulda-matchers'

gem 'simplecov', require: false
gem 'simplecov-console', require: false
gem 'webmock'

Readme.md

Добавлены разделы запуск, тестирование и покрытие

Edited by Yuri Samoilenko

Merge request reports