🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Capybara

Capybaraは、 Rubyで開発されているWebアプリケーションテストフレームワークです。Webブラウザ不要でブラウザ上のユーザー操作及びJavaScriptの挙動を自動化することができます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

3回答

2438閲覧

railsチュートリアル3章でtestが実施できない(capybara のgemがおかしい?)

kiyomasa

総合スコア40

Capybara

Capybaraは、 Rubyで開発されているWebアプリケーションテストフレームワークです。Webブラウザ不要でブラウザ上のユーザー操作及びJavaScriptの挙動を自動化することができます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/02/09 06:12

#実現したいこと
railsチュートリアル3章で$ rails generate controller StaticPages home help
実行後、testの中身を変えずにtestしたところ 以下のエラーが表示されテスト自体ができません...

$rails t /Users/kiyomasa/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/capybara-3.23.0/lib/capybara/selector/filters/node_filter.rb:9:in `initialize': wrong number of arguments (given 4, expected 3) (ArgumentError) #以下略

テスト自体は

#static_pages_controller_test.rb require 'test_helper' class StaticPagesControllerTest < ActionDispatch::IntegrationTest test "should get home" do get static_pages_home_url assert_response :success end test "should get help" do get static_pages_help_url assert_response :success end end

で生成時から特に触ってません。

gemfileはこちらです

Gemfile

1source 'https://rubygems.org' 2git_source(:github) { |repo| "https://github.com/#{repo}.git" } 3 4ruby '3.0.0' 5 6gem 'rails', '6.0.3' 7gem 'puma', '4.3.6' 8gem 'sass-rails', '5.1.0' 9gem 'webpacker', '4.0.7' 10gem 'turbolinks', '5.2.0' 11gem 'jbuilder', '2.9.1' 12gem 'bootsnap', '1.4.5', require: false 13 14group :development, :test do 15 gem 'sqlite3', '1.4.2' 16 gem 'byebug', '11.0.1', platforms: [:mri, :mingw, :x64_mingw] 17end 18 19group :development do 20 gem 'web-console', '4.0.1' 21 gem 'listen', '3.4.1' 22 gem 'spring', '2.1.0' 23 gem 'spring-watcher-listen', '2.0.1' 24end 25 26group :test do 27 gem 'capybara', '~>3.23.0' 28 gem 'selenium-webdriver', '3.142.4' 29 gem 'webdrivers', '4.1.2' 30 gem 'rails-controller-testing', '1.0.4' 31 gem 'minitest', '5.11.3' 32 gem 'minitest-reporters', '1.3.8' 33 gem 'guard', '2.16.2' 34 gem 'guard-minitest', '2.4.6' 35end 36 37group :production do 38 gem 'pg', '1.1.4' 39end 40 41 42# Windows ではタイムゾーン情報用の tzinfo-data gem を含める必要があります 43gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 44 45 46

##調べた、試したこと

どうやらcapybara gemで使うnode_filter.rb
wrong number of arguments (given 4, expected 3)
=引数エラーが出ているらしいと判明したので

###wrong number of argumentsでエラーを調査
ググって以下記事を発見し、見てみると
リンク
https://qiita.com/TOSHIMITSU_MIYACHI/items/82417ab6126d816af4e4

wrong number of arguments (a for b)
a=呼び出し側の引数の数
b=メソッド側の引数の数
があっていないということらしいのですが

あっていないと言われても、自分で作ったメソッドでもないし、もしかしてgemのバージョンがおかしいのか?と調査

##capybaraについて調査

元々gemfileはrailsチュートリアルから丸々コピーして使っていた(一部エラー出てバージョンを変えたりはしてみた)
https://qiita.com/morrr/items/0e24251c049180218db4

Capybara = UIテストのためのrubyフレームワーク
ということがわかりましたが 特に何も触らず、

何度かgemfileもinstallし直ししてみましたが、効果はありませんでした。

わかる方教えていただけると嬉しいです。

###環境

Rails 6.0.3 ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]

macbook ローカル環境です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

こんにちは。
maisumakunさまが同様の質問に回答してくださっていますので、多分同じ事象かなと思います。

Ruby, Rails, Capybaraのバージョンの組み合わせを見ると、たぶん近いのではと思います。

言語やフレームワークのバージョンが上がると、組み合わせによるトラブルが発生しやすいので、同じような内容でGitHubのissueやteratailも含め質問が上がってくることがあります。
検索してみたり、投稿後に表示される「関連した質問」も見てみると良いですよ。

投稿2021/02/09 22:56

suama

総合スコア1997

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kiyomasa

2021/02/10 01:57

回答ありがとうございます! Rubyのバージョンが3.0でしたのでおかしかったようです。(付随するいろんな問題も解決されました) capybaraのバージョンをあげてもおかしいままでしたので、Rubyのバージョンを下げた(2.7.2)らできました。 今後は関連した質問とかも見てみます。 1日格闘していたので、本当に助かりました!本当にありがとうございました。
guest

0

Unleash the power of Wordscapes Cheat Codes to elevate your gaming strategy. This dynamic tool empowers you with strategic insights, helping you conquer puzzles and outsmart challenges effortlessly. Gain the upper hand in the game and experience the thrill of unlocking new levels with ease.

投稿2023/11/27 20:59

greg89

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

あなたの問題は、Capybara gem を使用するときの「引数の数が間違っています」エラーのようです。 引数の数が期待した数と一致しない場合に発生するエラーです。 このエラーは、Capybara gem のバージョンの不一致が原因で発生する可能性があります。

解決策として、次の手順を試してください。

Capybara のバージョンを確認します。

ターミナルで次のコマンドを実行して、Capybara のバージョンを確認します。
ビート
コードをコピーする
カピバラディスプレイバンドル
アップデートバージョン:

Capybara の古いバージョンをお持ちの場合は、Gemfile で最新バージョンを指定してパッケージを更新してみてください。
Gemfile の Capybara バージョン パラメータを更新します。

ルビー
コードをコピーする
gem 'カピバラ'、'~>3.23.0'
最新の rice purity test バージョンに更新するには、次のコマンドを実行します。

ビート
コードをコピーする
カピバラアップデートパッケージ
アップデートパッケージ:

Gemfile を更新した後、次のコマンドを使用してパッケージを更新し、変更を適用します。
ビート
コードをコピーする
パッケージをインストールする
テストを再実行します。

ターミナルでテストを再度実行してみてください。
ビート
コードをコピーする
レールを確認してください
次の手順に従って、Capybara のバージョンを最新バージョンに更新し、問題が解決されたかどうかを確認します。 問題が解決しない場合は、他の依存関係や gem バージョンの不一致を確認する必要がある場合があります。

投稿2023/10/23 03:08

kennaanna

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問