当Cucumber任务未决时,Travis失败了吗?

时间:2014-05-02 10:56:20

标签: ruby-on-rails ruby travis-ci

正如标题所说,我的travis-ci实例告诉我,当我有待处理的黄瓜步骤定义(未定义)时,我的构建失败了 - 有没有办法阻止这种行为?

我能理解其中的原因,但是我所拥有的未定义的行为是不明确的目的 - 我无意立即做这个功能,但我知道我想保持步骤定义,所以我不会忘记是什么我想出来了。我问的原因是因为这种行为(当我有一个待处理的任务时它失败了)可能最终掩盖实际上重要的真正的失败。

1 个答案:

答案 0 :(得分:2)

有一个类似的答案here应该对你有用,他给出的答案是:

  

我认为黄瓜因为提供了非零流程退出代码   跳过或因未决测试。试着让它不运行任何   跳过,然后任何挂起,然后任何跳过或挂起的测试,看看   它给出的退出代码是什么。要查看退出代码(在Unix中),请运行它   类似的东西:

     

cucumber ...args to select tests... ; echo $?

所以基本上你想弄清楚你可以为黄瓜提供什么args让它通过然后提供运行该命令的.travis.yml。黄瓜茉莉和rspec的示例rake任务是here

task :travis do
  ["rspec spec", "rake jasmine:ci", "rake cucumber"].each do |cmd|
    puts "Starting to run #{cmd}..."
    system("export DISPLAY=:99.0 && bundle exec #{cmd}")
    raise "#{cmd} failed!" unless $?.exitstatus == 0
  end
end

read the docs了解有关创建.travis.yml的更多信息。

如果所有这些都不起作用,只需创建一个捕获输出的bash脚本并在正确的情况下返回0,我真的怀疑这是必需的,因为我确定黄瓜有一个选项让它忽略悬而未决。

编辑:the cucumber docs说:

  

待定步骤

     

当Step Definition的Proc调用#pending方法时,步骤为   标记为黄色(与未定义的一样),提醒您有   要做的工作。如果使用--strict,这将导致Cucumber退出   1。

如果你不打电话给--strict

,这似乎意味着他们不会以0退出