3

我有一个小项目(非 Rails),我正在使用 RSpec 进行测试。为了加载我正在使用的模型:

require_relative "../lib/checkout"

但是我在加载配置文件时遇到了问题,例如,在以下情况下,测试不再找到我的“items.csv”:

CSV.foreach("items.csv") do |row|

请注意,仅当从规范目录运行规范时才会出现问题,即:

rspec checkout_spec.rb

从项目根目录运行它很好:

rspec spec/checkout_spec.rb

任何帮助,将不胜感激。

4

1 回答 1

3

CSV.foreach使用当前目录查找文件。您可能应该使用File.expand_path获取绝对路径items.csv来避免此问题。

编辑添加示例

假设文件是​​ at root/items.csv,并且带有这段代码的 ruby​​ 文件是 at root/lib/file.rb,你可以写

path = File.expand_path File.join(File.dirname(__FILE__), '..', 'items.csv')
CSV.foreach path do |row|
  # rest of code...
于 2013-01-20T07:43:58.753 回答