QUnit サービス
WebdriverIO (wdio) サービスは、ブラウザベースのQUnitテストを実行し、それらを動的にwdioテストスイートに変換します。
Karmaの代替
QUnit サービス は、Karma JS を使用して QUnit テストを実行している人にとって、ドロップインで置き換えられるものです ( karma-qunit, karma-ui5 または Karma と QUnit のその他の組み合わせ)。Karma は 非推奨であり、人々は最新の代替手段に移行する必要があります!
QUnitテストを書き換えたり、リファクタリングしたりせずに、そのままにしておきたい場合、QUnit サービス が必要なものすべてです。ブラウザでQUnit HTMLファイルを実行し、すべての結果をwdio形式でキャプチャします。
そのため、開発者は wdio エコシステムで利用可能な他のすべてと並行して QUnit サービス を使用できます。
ビデオでテスト実行を記録しますか?スクリーンショットを撮るか、PDFで保存してみませんか?コードカバレッジを確認してみませんか?テスト結果をJUnit形式で保存してみませんか?どうぞ、QUnit サービス は邪魔になりません。
インストール
WebdriverIOを設定した後、package.jsonファイルにwdio-qunit-serviceを開発依存関係としてインストールします。
npm install wdio-qunit-service --save-dev
まだWebdriverIOを設定していない場合は、公式のドキュメントを確認してください。
設定
QUnit サービス を使用するには、wdio.conf.js ファイルの services リストに追加するだけです。wdio ドキュメントには、設定ファイルに関するすべての情報があります。
// wdio.conf.js
export const config = {
  // ...
  services: ["qunit"],
  // ...
};
使い方
テストを実行する前に、Webサーバーが起動して実行されていることを確認してください。wdio は Webサーバーを起動しません。
.specまたは.testファイルを使用する場合
WebdriverIO テストでは、QUnit HTML テストページに移動し、browser.getQUnitResults() を呼び出す必要があります。
describe("QUnit test page", () => {
  it("should pass QUnit tests", async () => {
    await browser.url("https://:8080/test/unit/unitTests.qunit.html");
    await browser.getQUnitResults();
  });
});
QUnit HTML テストページごとに 1 つの WebdriverIO テストファイルを用意することをお勧めします。これにより、テストが並行して完全に分離された状態で実行されます。
設定のみで、.specまたは.testファイルを使用しない場合
spec/test ファイルを作成したくない場合は、QUnit HTML ファイルのリストを設定に渡すと、テストが自動的に生成されます。
// wdio.conf.js
export const config = {
  // ...
  baseUrl: 'https://:8080',
  services: [
    ['qunit', {
      paths: [
        'unit-tests.html',
        'integration-tests.html',
        'test/qunit.html'
      ]
    }],
  // ...
};
テスト結果
テスト結果は次のようになります: 
例
javascript、typescript などを使用したサンプルについては、examplesフォルダーを確認してください。
SAP Fiori / UI5 アプリでの使用
有名なopenui5-sample-appを使用したわかりやすい例
- 
設定ファイルを作成します:wdio.conf.js 
- 
QUnitテストファイルを見つける場所を wdioに伝えます
- 
- QUnitファイルをサービス構成に含めます
 
- 
- または
 
- 
テストを実行する前に、Webサーバーが実行されている必要があります 
- 
実行します $ wdio run ./webapp/test/wdio.conf.js
著者
マウリシオ・ラウファー
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。