0

我正在尝试为我的项目设置完整性。可悲的是,我的 bash-fu 很穷,所以我需要一些帮助。在构建脚本中,我输入rake spec. 完整地返回状态 0 并输出

(在 /home/rails/integrity/builds/builds/66 中)

但我知道,我应该得到状态 1 并输出(在从控制台手动运行之后):

rails@integrity:~/integrity/builds/builds/66$ rake 规范
(在 /home/rails/integrity/builds/builds/66 中)rake 中止!没有这样的文件或目录 - /home/rails/integrity/builds/builds/66/config/database.yml

(通过使用 --trace 运行任务查看完整跟踪)

我不创建 database.yml,因为我想 Integrity 显示有关它的消息?

对我来说,它看起来像是丢失了管道。脚本在这里运行:http: //github.com/integrity/integrity/blob/v22/lib/integrity/builder.rb#L49 你能说出为什么rake spec完整性返回0吗?

4

1 回答 1

0

在运行测试之前,您需要设置 database.yml。您可以编写一个自定义构建脚本来设置它,然后运行测试。就像是:

namespace :ci do
  task :update_submodules do
    system("git submodule update -i")
  end

  task :copy_yml do
    system("cp /my/custom/config/path/database.yml.ci #{Rails.root}/config/database.yml")
  end

  desc "Prepare for CI and run entire test suite"
    task :build => [:environment, 'ci:update_submodules', 'ci:copy_yml', 'spec', 'cucumber:ok'] do
  end

end

然后将 rake ci:build 作为完整性构建脚本。基本上,这个脚本将在启动测试之前复制一个 database.yml 模板。

于 2010-10-06T16:49:35.513 回答