mcpField
N
nightwatchjs-skill

nightwatchjs-skill

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

nightwatchjs-skill について

nightwatchjs-skillは、NightwatchJSによるブラウザー自動化のリファレンススキルです。ローカルとクラウドの実行方法、テストパターン、ページオブジェクト、アサーション、TestMu AIの設定を扱います。

主な機能

  1. 01ローカルとクラウドの実行ガイド
  2. 02ブラウザー自動化テストパターン
  3. 03ページオブジェクトの例
  4. 04組み込みアサーションの例
  5. 05TestMu AIのクラウド設定
  6. 06セットアップとテスト実行コマンド

活用シーン

  1. 01ローカルまたはクラウドの実行先を選択
  2. 02NightwatchJSでブラウザーテストを作成
  3. 03ページオブジェクトでセレクターを整理
  4. 04LambdaTest環境でテストを実行

インストール

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

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

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

同梱ファイル

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

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

詳細

NightwatchJS 自動化スキル

ステップ 1 — 実行対象

├─ "cloud", "TestMu", "LambdaTest" → Cloud: nightwatch.conf.js with LT env
├─ "local" → Local: ChromeDriver/GeckoDriver
└─ Default → Local, mention cloud option

基本パターン

基本的なテスト
module.exports = {
  'Login with valid credentials': function(browser) {
    browser
      .url('http://localhost:3000/login')
      .waitForElementVisible('#email', 5000)
      .setValue('#email', '[email protected]')
      .setValue('#password', 'password123')
      .click('button[type="submit"]')
      .waitForElementVisible('.dashboard', 10000)
      .assert.containsText('.welcome', 'Welcome')
      .assert.urlContains('/dashboard')
      .end();
  },

  'Login with invalid credentials shows error': function(browser) {
    browser
      .url('http://localhost:3000/login')
      .waitForElementVisible('#email', 5000)
      .setValue('#email', '[email protected]')
      .setValue('#password', 'wrong')
      .click('button[type="submit"]')
      .waitForElementVisible('.error-message', 5000)
      .assert.containsText('.error-message', 'Invalid credentials')
      .end();
  }
};
ページオブジェクト
// pages/loginPage.js
module.exports = {
  url: '/login',
  elements: {
    emailInput: '#email',
    passwordInput: '#password',
    loginButton: 'button[type="submit"]',
    errorMessage: '.error-message',
  },
  commands: [{
    login(email, password) {
      return this
        .setValue('@emailInput', email)
        .setValue('@passwordInput', password)
        .click('@loginButton');
    }
  }]
};

// tests/loginTest.js
module.exports = {
  'Login test': function(browser) {
    const login = browser.page.loginPage();
    login.navigate()
      .login('[email protected]', 'password123');
    browser.assert.urlContains('/dashboard');
  }
};
アサーション
browser.assert.visible(selector);
browser.assert.not.visible(selector);
browser.assert.containsText(selector, 'text');
browser.assert.urlContains('/path');
browser.assert.titleContains('Page Title');
browser.assert.elementPresent(selector);
browser.assert.cssClassPresent(selector, 'active');
browser.assert.value('#input', 'expected');
browser.assert.attributeEquals(selector, 'href', '/link');
browser.assert.elementsCount('li', 5);
TestMu AI Cloud の設定

すべての機能と共有リファレンスについては、reference/cloud-integration.md を参照してください。

// nightwatch.conf.js
module.exports = {
  test_settings: {
    default: {
      launch_url: 'http://localhost:3000',
      desiredCapabilities: { browserName: 'chrome' }
    },
    lambdatest: {
      selenium: {
        host: 'hub.lambdatest.com',
        port: 80
      },
      desiredCapabilities: {
        browserName: 'chrome',
        browserVersion: 'latest',
        'LT:Options': {
          platform: 'Windows 11',
          build: 'Nightwatch Build',
          name: 'Login Tests',
          user: process.env.LT_USERNAME,
          accessKey: process.env.LT_ACCESS_KEY,
          video: true, console: true, network: true
        }
      }
    }
  },
  page_objects_path: ['pages/'],
};

セットアップ:npm install nightwatch --save-dev

実行:npx nightwatch または npx nightwatch --env lambdatest

高度なパターン

高度なパターン、デバッグガイド、CI/CD 統合、ベストプラクティスについては、 reference/playbook.md を参照してください。

コメント