2012-02-05 13 views
3

私はカピバラで簡単なファイルアップロードをテストしようとしています。ここに私の Gemfile.lockキュウリ+カピバラファイルアップロードが私のために機能しません

capybara (1.1.2) 
mime-types (>= 1.16) 
nokogiri (>= 1.3.3) 
rack (>= 1.0.0) 
rack-test (>= 0.5.4) 
selenium-webdriver (~> 2.0) 
xpath (~> 0.1.4) 

と私のセレンwebdriverをバージョンは2.18です。 「

Then I attach the file "features/resources/empty.file" to "file" within "#uploadForm" 

が実際にそれが行の罰金と緑走ったが、入力がなかったの:これは、ファイルをアップロードするライン上の私の機能は

When /^(?:|I)attach the file "([^\"]*)" to "([^\"]*)"(?: within "([^\"]*)")?$/ do |path, field, selector| 
    with_scope(selector) do 
    attach_file(field, path) 
    end 
end 

である:ここでは(それが生成されています)私のweb_stepsファイルですファイルが選択されていないため、その後にテストが失敗するようにファイルを選択します。

は、ここに私のフォームである:それはかなり基本的だ

%form#uploadForm{:action => "/upload", :method => "POST", :enctype => "multipart/form-data"} 
    %input{:type => "file", :name => "file", :id => "file"} 

、私はそれが働いていない理由はわかりません。

+0

添付しているフォームを送信していますか? –

+0

ヤブ、申し訳ありません私は送信ボタンを含めることを忘れました – toy

答えて

5

私はちょうど私の質問に答えたい、問題は私は完全なパスを使用していないです。どういうわけかカピバラは相対的な経路を認識しません。あなたが共同作業する場合は特に

attach_file(field, File.expand_path(path)) 

代わりの絶対パスを使用して、:

12

玩具、 私はに示唆しています。

編集:File.expand_pathでないFile.extend_path

+1

構文が間違って、File.expand_path(パス) – prusswan

関連する問題