正如标题所说,我的travis-ci实例告诉我,当我有待处理的黄瓜步骤定义(未定义)时,我的构建失败了 - 有没有办法阻止这种行为?
我能理解其中的原因,但是我所拥有的未定义的行为是不明确的目的 - 我无意立即做这个功能,但我知道我想保持步骤定义,所以我不会忘记是什么我想出来了。我问的原因是因为这种行为(当我有一个待处理的任务时它失败了)可能最终掩盖实际上重要的真正的失败。
答案 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