2015-06-19 2 views
1

У меня есть проект с четырьмя модулями. Все модули основаны на Java, за исключением одного приложения с рельсами.buildr with rails application

Для автоматизации процесса сборки я использую buildr. Я бы хотел запустить rails-тесты, используя «buildr test» (так же, как я выполняю java-тесты), но я не могу понять, как выполнить задачу rake, доступную в проекте rails.

Любая идея, как это сделать?

ответ

1

В вашем определении проекта для модуля рельсов, вы могли бы сделать что-то вроде:

test do 
    exec "bin/rails test" 
end 
2

Там есть несколько способов сделать это, и это зависит от того, как «интегрированного» вы хотите получить. Как правило, наши приложения для рельсов также сообщают результаты тестов через ci_reporter, поэтому их можно подобрать дженкинсом. Один из наших проектов использует код itest.rb по сниппеты как

workspace_dir = File.expand_path(File.dirname(__FILE__) + '/..') 

require File.expand_path("#{workspace_dir}/lib/itest.rb") 

ITest::Config.reports_dir = "#{workspace_dir}/target/reports" 
ITest::Config.scripts_dir = "#{workspace_dir}/target" 
ITest::TestTask.new('models', FileList["#{workspace_dir}/test/unit/**/*_test.rb"]) 
ITest::TestTask.new('controllers', FileList["#{workspace_dir}/test/functional/**/*_test.rb"]) 

def add_tests_task(project, task_name) 
    project.test do 
    begin 
     task(task_name).invoke 
    rescue 
     raise unless Buildr.options.test == :all 
    end 
    end 
end 

И тогда в нашем добавить файл построение что-то вроде

project 'myproject' do 
    ... 
    add_tests_task(project, 'test:models') 
    add_tests_task(project, 'test:controllers') 
end 

Надежда, что помогает!