Feature/codequality
Первая итерация по запуску тестов и покрытия.
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