3

小さなプロジェクト (Rails 以外) があり、テストに RSpec を使用しています。私が使用しているモデルをロードするために:

require_relative "../lib/checkout"

ただし、構成ファイルの読み込みで問題が発生しています。たとえば、次の場合、テストで「items.csv」が見つかりません。

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

この問題は、spec ディレクトリから spec を実行した場合にのみ発生することに注意してください。

rspec checkout_spec.rb

プロジェクト ルートから実行しても問題ありません。

rspec spec/checkout_spec.rb

どんな助けでも大歓迎です。

4

1 に答える 1

3

CSV.foreach現在のディレクトリを使用してファイルを検索します。この問題を回避File.expand_pathするには、絶対パスに到達するために使用する必要があります。items.csv

例を追加するために編集

root/items.csvファイルが にあり、このコードを含む ruby​​ ファイルが にあると仮定すると、次の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 に答える