コードエクスポートプラグインのサポート
プラグインAPIを使用すると、Selenium IDEプラグインは、既存の言語または新しい言語のいずれかのコードをエクスポートできます。
- 既存の言語
- 新しい言語
注:新しい言語を追加する場合は、@seleniumhq/side-utilsをご覧ください。コードエクスポート用の既存の言語(例:java-junit)で使用例を確認できます。
エクスポート設定
プラグインマニフェストでは、言語をエクスポートすることを指定する必要があります。
既存の言語への追加
既存の言語を拡張するには、`languages`キーを使用し、配列で言語を指定します。
"exports": {
"languages": ["java-junit"]
}
現在利用可能な言語IDは、`"java-junit"`、`"javascript-mocha"`、`"python-pytest"`、および`"csharp-xunit"`です。
新しい言語の追加
コードエクスポートに新しい言語を追加するには、`vendor`キーを使用し、オブジェクト配列で言語を指定します。
"exports": {
"vendor": [{"your-language": "Your language"}]
}
キーは、エクスポートイベントで使用されるIDです。値は、UIのコードエクスポートメニューで使用される表示名です。
エクスポートイベント
Selenium IDEは、エンティティタイプごとに次のイベントを送信します。プラグインは、コードエクスポートのためにこれに応答できます。
{
action: "export",
entity,
language,
options,
}
- `action` - `export`:コードエクスポートが必要なアクションを示します
- `entity`:エクスポートするエンティティ。`command`、次のセクションで説明するフックのいずれか、または新しい言語をエクスポートする場合は`vendor`です。
- `options`:プラグインがエクスポートする内容について、より多くの情報に基づいた決定を下すのに役立つメタデータ(例:プロジェクト、テスト名、スイート名など)
フック
コードエクスポートは、フックの概念に基づいて構築されています。フックは、エクスポートされるテストコードのさまざまな部分へのエントリポイントを提供します。
- `afterAll`(すべてのテストが完了した後)
- `afterEach`(各テストが完了した後 - `afterAll`の前)
- `beforeAll`(すべてのテストが実行される前)
- `beforeEach`(各テストが実行される前 - `beforeAll`の後)
- `command`(プラグインによって追加された新しいコマンドのコードを出力する)
- `dependency`(追加の言語依存関係を追加する)
- `inEachBegin`(各テストの開始時)
- `inEachEnd`(各テストの終了時)
- `variable` (スイート全体で使用される新しい変数を宣言する)
レスポンス
既存の言語への追加
エクスポートイベントに応答するには、エクスポートする文字列とともに`sendResponse`を呼び出します。文字列に複数行がある場合は、改行文字(例:`\n`)で区切ります。
または、コードエクスポートスタートガイドで説明されているコマンドオブジェクト構造を使用することもできます。
sendResponse(`const myLibrary = require("my-library");`);
新しい言語の追加
新しい言語の`vendor`エクスポートイベントに応答して、プラグインは`filename`と`body`キーを含むオブジェクトで応答する必要があります。
const payload = {
filename: 'test.js',
body: '// your final exported code\n// goes here\n// etc.'
}
sendResponse(payload)