我有一个项目与四个模块。除了一个是rails应用程序之外,所有模块都是基于java的。建筑师与导轨应用程序
为了使构建过程自动化,我使用了构建器。我想使用“buildr test”来运行rails测试(与我执行java测试的方式相同),但我无法弄清楚如何执行rails项目中可用的rake任务。
任何想法如何做到这一点?
我有一个项目与四个模块。除了一个是rails应用程序之外,所有模块都是基于java的。建筑师与导轨应用程序
为了使构建过程自动化,我使用了构建器。我想使用“buildr test”来运行rails测试(与我执行java测试的方式相同),但我无法弄清楚如何执行rails项目中可用的rake任务。
任何想法如何做到这一点?
在对轨道模块项目的定义,你可以这样做:
test do
exec "bin/rails test"
end
有几个方法可以做到这一点,这取决于你想如何“整合”来获得。通常,我们的导轨应用程序也会通过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
希望帮助!