[Continuous Integration] Автоматический запуск Rspec посредством связки Jenkins+Rake

Здравствуйте.

Сегодня хочу рассказать и показать на простом примере, как запускать автоматически Rspec используя Jenkins+Rake.

1. Установим Rake

gem install rake

2. Открываем Ruby-шную IDE(в моем случае это RubyMine) и создаю новый проект. Примерно с такой структурой:

3. В spec файле напишем простенький тест(в моем случае “test_spec.rb”):

RSpec.describe "something" do
  it "does something" do
    # pass
  end

4. Теперь когда формально у нас есть тест который мы будем запускать, напишем для этого исполняемый-файл rake:

require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec) do |t|
  t.pattern = "spec/**/*_spec.rb"
end

task :default => :spec

чуть-чуть конкретики

t.pattern = "spec/**/*_spec.rb"

Шаблон согласно которому будут запускаться все файлы которые находятся в корневом “spec” фолдере и собственно которые имеют постфикс “_spec”.

task :default => :spec

Дефолтная задача которая будет выполнена при вызове rake команды.

5. Давайте убедимся, что наш rake файл запускает Rspec тест-файл.

Открываем командную строку, или пользуемся встроенным терминалом в RubyMine и переходит в фолдер где лежит наш rake-файл. Выполним команду:

$ rake

6. После того как мы убедились, что команда выполняется без ошибок, перейдем к установке Jenkins и его компонентам.

Скачиваем Jenkins c офф. сайта

После установки, навигейтимся Jenkins Settings → Plugins Management и устанавливаем “Rake plugin”.

7. После того как плагин был установлен мы можем приступить к созданию джобы которая будет запускать rake файл:

На фронт пейдже делаем следующие действия Create item-> Build a free-style software project-> Произвольное название айтема

В секции “Build” добавляем настройку “Invoke Rake” и заполняем поля как это показано здесь:

Сохраняем. Запускаем и смотрим результат:

Building in workspace C:\Program Files (x86)\Jenkins\jobs\Run Spec files\workspace
[Rake_test] $ C:\Ruby193\bin\rake.bat --rakefile C:\Users\eugene.tkachenko\RubymineProjects\Rake_test\Rakefile.rb default
.

Finished in 0.0005 seconds (files took 0.223 seconds to load)
1 example, 0 failures
C:/Ruby193/bin/ruby.exe -IC:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-support-3.0.0/lib;C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-3.0.1/lib -S C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-3.0.1/exe/rspec spec/test_spec.rb
Finished: SUCCESS

Собственно, все.

3 лайка

У Вас Jenkins и Rake на одной машине или на разных?

На одной.

П.С. Админам, куда-то подевались картинки заатаченные через ваш рич текс едитор.

спасибо как раз предстоит настройка. для настройки на удаленной машине особенности есть?

Никаких, по крайне мере у меня все заводиться на ремоут ПК без проблем.

Если будут какие-то сложности, пинганите меня.