【发布时间】:2015-04-09 09:01:06
【问题描述】:
我可能会在这之后踢自己,但我在我的黄瓜应用程序中创建了一个方法,该方法将删除目录中的所有文件,但它似乎没有执行,因为运行它后文件仍然存在,但如果我跳入我的控制台并逐步运行命令。
调用方法本身时这不起作用的任何原因?
def clean_reports
js_error_path = File.join(File.dirname(__FILE__), '/report/js_errors')
screenshot_path = File.join(File.dirname(__FILE__), '/report/screenshots')
FileUtils.rm_rf(Dir.glob(js_error_path + '/*'))
FileUtils.rm_rf(Dir.glob(screenshot_path + '/*'))
end
如果我可以只调用一次FileUtils.rm_rf 会很方便吗?这可能吗?
我的目录结构是这样的
-cucumber_tests
-report
-js_errors
(files)
-screenshots
(files)
谢谢
【问题讨论】:
-
puts "#{js_error_path}"在它被分配之后——给你什么?顺便说一句,Dir接受枚举表示法:Dir['report/{js_errors,screenshots}/**/*']。 -
puts 输出 './report/js_errors'
-
nil?这几乎是不可能的,因为File.join是字符串感知的连接函数。无论如何,在您的环境中File.dirname __FILE__可能与您在控制台中获得的环境不同。 -
抱歉,我的错误,已经编辑了我之前的评论
-
所以我需要使用与
File.dirname __FILE__不同的东西吗?我宁愿不硬编码路径,因为根目录的位置可能位于其他人机器上的不同位置
标签: ruby