mcpField
C
capybara-skill

capybara-skill

github.com/lambdatestテスト・品質384204 回インストール2 週間前に更新
リポジトリ

capybara-skill について

capybara-skillは、RSpecでCapybaraのブラウザテストを書くためのリファレンススキルです。操作パターン、ページオブジェクト、API・データベーステスト、デバッグ、CI/CD設定を扱います。

主な機能

  1. 01RSpecフィーチャーテストのパターン
  2. 02ブラウザー移動とフォーム操作
  3. 03ページやテーブルの範囲指定検索
  4. 04ページオブジェクトとAPIテスト
  5. 05データベースクリーニングとCI/CDのガイド

活用シーン

  1. 01ブラウザーベースのログイン・操作テストの作成
  2. 02ページオブジェクトと再利用可能なヘルパーによるテスト整理
  3. 03Capybaraテストでよくある障害の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/lambdatest/agent-skills --skill capybara-skill

インストール後、Claude Code で/capybara-skillを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
advanced-patterns.md
cloud-integration.md
playbook.md

詳細

Capybara 自動化スキル

基本パターン

基本的なテスト(RSpec)
require 'capybara/rspec'

RSpec.describe 'Login', type: :feature do
  it 'logs in with valid credentials' do
    visit '/login'
    fill_in 'Email', with: '[email protected]'
    fill_in 'Password', with: 'password123'
    click_button 'Login'
    expect(page).to have_content('Dashboard')
    expect(page).to have_current_path('/dashboard')
  end

  it 'shows error for invalid credentials' do
    visit '/login'
    fill_in 'Email', with: '[email protected]'
    fill_in 'Password', with: 'wrong'
    click_button 'Login'
    expect(page).to have_content('Invalid credentials')
  end
end
DSL
# Navigation
visit '/path'
go_back
go_forward

# Interacting
fill_in 'Label or Name', with: 'text'
choose 'Radio Label'
check 'Checkbox Label'
uncheck 'Checkbox Label'
select 'Option', from: 'Select Label'
attach_file 'Upload', '/path/to/file'
click_button 'Submit'
click_link 'More Info'
click_on 'Button or Link'

# Finding
find('#id')
find('.class')
find('[data-testid="x"]')
find(:xpath, '//div')
all('.items').count

# Matchers
expect(page).to have_content('text')
expect(page).to have_selector('#element')
expect(page).to have_css('.class')
expect(page).to have_button('Submit')
expect(page).to have_field('Email')
expect(page).to have_link('Click Here')
expect(page).to have_current_path('/expected')
expect(page).to have_no_content('error')
スコープ内
within('#login-form') do
  fill_in 'Email', with: '[email protected]'
  click_button 'Login'
end

within_table('users') do
  expect(page).to have_content('Alice')
end
TestMu AI Cloud
Capybara.register_driver :lambdatest do |app|
  caps = Selenium::WebDriver::Remote::Capabilities.new(
    browserName: 'chrome',
    'LT:Options' => {
      user: ENV['LT_USERNAME'], accessKey: ENV['LT_ACCESS_KEY'],
      build: 'Capybara Build', name: 'Login Test',
      platform: 'Windows 11', video: true
    }
  )
  Capybara::Selenium::Driver.new(app,
    browser: :remote,
    url: 'https://hub.lambdatest.com/wd/hub',
    capabilities: caps)
end
Capybara.default_driver = :lambdatest

セットアップ:Gemfile に gem 'capybara' と gem 'selenium-webdriver' を追加します

実行:bundle exec rspec spec/features/

クラウド(TestMu AI)

リモートブラウザーで実行する場合は、reference/cloud-integration.md と shared/testmu-cloud-reference.md を参照してください。

詳細なパターン

本番環境向けのパターンについては、reference/playbook.md を参照してください。

セクション内容
§1 プロジェクトのセットアップGemfile、Capybara の設定、ドライバーの登録、LambdaTest
§2 機能スペックログインフロー、JavaScript の操作、モーダル、非同期コンテンツ
§3 ページオブジェクト要素やセクションを含む SitePrism ページ、スペックでの使用方法
§4 API テスト認証ヘッダーを使ったリクエストスペック、JSON アサーション
§5 データベースのクリーニングDatabaseCleaner のトランザクション/トランケーション戦略
§6 マッチャーとヘルパーカスタムヘルパー、sign_in、expect_flash
§7 CI/CD 統合Postgres、Redis、Chrome を使った GitHub Actions
§8 デバッグ表よくある問題 12 件とその原因・解決策
§9 ベストプラクティスCapybara テストの 14 項目チェックリスト

コメント