Skip to content

Instantly share code, notes, and snippets.

@IvanShamatov
Last active December 12, 2019 20:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IvanShamatov/20afd7afa52542f9da2d072e3a62297a to your computer and use it in GitHub Desktop.
Save IvanShamatov/20afd7afa52542f9da2d072e3a62297a to your computer and use it in GitHub Desktop.
Про тестирование в разных окружениях
  1. Когда я еще был рубистом и упарывался на написание тестов, то для своего гема у меня была какая-то дикая матрица тестирования, не только под версию руби, но даже под операционку. Вот тот самый конфиг для матрицы.

https://github.com/TheRole/DummyApp/blob/master/.travis.yml

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

https://github.com/thoughtbot/appraisal#readme

Но я решил не заморачиваться на нее.

  1. Для разных версий рельса и версий руби в Гемфайл я пихал такое

https://github.com/TheRole/DummyApp/blob/master/Gemfile

И имел еще ряд подключаемых гемфайлов, в зависимости от переданных параметров

https://github.com/TheRole/DummyApp/tree/master/gemfiles

  1. Строго говоря, разные версии зависимостей могут вполне потребовать условных конструкций в коде и специфических правок. Например вот тут.

https://github.com/TheRole/DummyApp/blob/master/app/controllers/application_controller.rb#L3

Вообще у меня были случаи, когда некоторые методы руби были не доступны в старых версиях и мне приходилось патчить код и добавлять эти методы самому.

  1. При написании спеков ты можешь свободно использовать фильтры для конкретных версий чего угодно. Или дажи написать свои кастомные фильтры, которые будут запускать тесты для одних случаев и не запускать для других rspec/rspec-core#1484

by Ilya Nikolaevich

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment