2015-06-19 107 views
1

我有一个项目与四个模块。除了一个是rails应用程序之外,所有模块都是基于java的。建筑师与导轨应用程序

为了使构建过程自动化,我使用了构建器。我想使用“buildr test”来运行rails测试(与我执行java测试的方式相同),但我无法弄清楚如何执行rails项目中可用的rake任务。

任何想法如何做到这一点?

回答

1

在对轨道模块项目的定义,你可以这样做:

test do 
    exec "bin/rails test" 
end 
2

有几个方法可以做到这一点,这取决于你想如何“整合”来获得。通常,我们的导轨应用程序也会通过ci_reporter报告测试结果,因此可以由jenkins提取。我们的一个项目,由段使用代码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 

希望帮助!