4

きゅうりのステップからファイルを添付したい:

When /^I attach an image/ do
  page.attach_file("Image", File.join(fixture_path, "green_small.jpg"))
end

何らかの理由で、これは結果になり/home/xxx/test/fixtures/green_small.jpgます。フィクスチャパスのデフォルトはtest/fixturesキュウリのどこかにあります。

私はrspecを使用しているので、フィクスチャへのパスはである必要がありますspec/fixtures。私のRspecspec_helper.rbにはこれが設定されています:

RSpec.configure do |config|
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
end

私はすでにこれを設定しようとしましたconfig/environments/test.rbが成功しませんでした。

明らかに、私は自分でパスを構築するだけでpage.attach_file("Image", File.join(Rails.root, "spec", "fixtures", "green_small.jpg"))うまくいきます。しかし、それfixture_pathはすでにあります。それを正しく設定してから使用すると、手順が少しだけポータブルでクリーンになります。

しかし、これはキュウリでは使用されません。キュウリで正しいURLを取得するにはどうすればよいですか?

4

3 に答える 3

1

WorldでrbファイルであるCucumberグローバル変数を定義するのはどうですかfeatures/support

ファイルfeatures/support/path_define.rb

module PathDefine
  def my_fixture_path
    @my_fixture_path ||= "#{::Rails.root}/spec/fixtures"
  end
end

World(PathDefine)

次にmy_fixture_path、ステップ定義のどこでも変数を使用できます。

参照:https ://github.com/cucumber/cucumber/wiki/A-Whole-New-World

お役に立てれば。

于 2012-12-09T19:06:33.993 に答える
0

この投稿によると、環境ではなく、テストでパスを使用する必要があります

このような:

attach_file(:csv_file, File.join(RAILS_ROOT, 'features', 'upload-files', 'products_csv_ok.csv'))
于 2012-12-06T17:20:43.397 に答える
0

注として、これを環境/ *。rbファイルに配置できない理由は、この構成ブロックがRSpec.config...用であり、用ではないためです。YourAppName::Application.configure

ファイル内のパスを変更する必要があり./spec/spec_helper.rbます。

于 2014-02-11T18:45:04.263 に答える