【发布时间】:2020-02-18 04:27:57
【问题描述】:
所以我在过去一个半小时左右一直在搞砸这个,只是不知道该怎么做。
在我的 Ruby test.rake 文件中,该文件在创建 Snapshot Gem 后从另一个项目中调用,我需要检查其他项目的 Rakefile 中是否存在对 Capybara 的依赖项,因为我们已经弃用 Capybara并用其他东西代替它。
所以,我包括了一个简单的检查来查看项目是否包含 Feature/Capybara 测试,如果是,则扫描每个规范测试,看看它是否有对 Capybara 的依赖,如果有,记录一个警告告诉Capybara 已被弃用的用户。
我的问题是,我根本无法让它工作。当我将它附加到 Jenkins 作业并运行它时,我不断在 else 子句中收到意外的 Print 语句。
我在这里遗漏了什么吗?据我了解,我的代码正在做以下事情:
- 检查 spec/features 目录是否存在
- 使用 glob 选择目录中以 .rb 结尾的所有文件(规范测试),每个文件实例都分配给 file
- 获取 file 的当前实例,读取其中的每一行,然后使用 grep 查找其中包含单词“capybara”的任何实例,如果找到则打印出正确的消息。李>
- 否则,如果找不到单词,则在 else 子句中打印错误消息。
我对 Ruby 有点陌生,所以我觉得我可能在语法上遗漏了一些东西,但除此之外我被难住了!任何帮助将不胜感激!这是我试图解析的代码和 Rakefile 的样子:
test.rake:
if Dir.exist?('spec/features')
path = 'spec/features/'
Dir.glob(path + '*.rb') {|file|
if File.readlines(file).grep(/capybara/).any?
print "The capybara dependency has been found!"
else
print "SOMETHING WENT WRONG"
end
}
end
Rakefile:
#!/usr/bin/env rake
# frozen_string_literal: true
require 'roll_out/rake_tasks'
require 'roll_out/security'
require 'roll_out/jira'
require 'REDACTED/philter/lint_results'
require 'roll_out/capybara'
load 'REDACTED/tasks/REDACTED.rake'
【问题讨论】:
标签: ruby-on-rails ruby rspec capybara rake