我有一個項目與四個模塊。除了一個是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
希望幫助!