JUnit XML レポーター
概要
JUnitは、テスト結果を生成するための広く普及しているXML形式であり、ほとんどのCIシステム(例:Jenkins)はこれをネイティブにサポートしており、より高度なレポートを表示できます。
NightwatchはデフォルトでJUnit形式のXMLを出力し、これは`output_folder`設定で制御できます。
設定
HTMLレポーターは、v2.2以降、HTMLおよびJSONレポーターとともに**デフォルトで有効**になっていますが、その動作は次のように構成できます。
設定ファイルによる方法
`output_folder`設定は、JUnit XMLレポートファイルが保存される場所を指定するために使用されます。Nightwatchは、各テストスイートファイルに対してXMLファイルを作成します。
module.exports = {
output_folder: 'tests_output'
}
テスト出力関連の設定の完全なリストについては、設定 > 出力設定ページを参照してください。
CLIによる方法
`--output`フラグを使用して、CLIで実行時に出力フォルダを構成することもできます。
nightwatch --output ./tests-output
Nightwatchが受け入れるCLIフラグの完全なリストについては、CLIリファレンスページを参照してください。
XMLファイル名は次のパターンに従います。
例
ステップ0:新規プロジェクトの作成
まず、新しい空のプロジェクトを作成し、その中にNightwatchをインストールしましょう。
mkdir ./test-project && cd ./test-project
ステップ1:Nightwatchとchromedriverのインストール
NPMから`nightwatch`と`chromedriver`をインストールします(`chromedriver`はGoogle Chromeブラウザでテストを実行するためのW3C WebDriver実装です。お使いのコンピューターに最新のChromeブラウザがインストールされていることを確認してください)。
npm i nightwatch chromedriver
ステップ2:サンプルテストの実行
duckDuckGo.jsのサンプルテストを検討してください。
describe('duckduckgo example', function() {
it('Search Nightwatch.js and check results', function(browser) {
browser
.navigateTo('https://duckduckgo.com')
.waitForElementVisible('#search_form_input_homepage')
.sendKeys('#search_form_input_homepage', ['Nightwatch.js'])
.click('#search_button_homepage')
.assert.visible('.results--main')
.assert.textContains('.results--main', 'Nightwatch.js');
});
});
次のコマンドを使用して実行できます。
npx nightwatch examples/tests/duckDuckGo.js --env chrome
組み込みのJUnit-XMLレポートのみを生成するには、次のコマンドを実行します。
npx nightwatch examples/tests/duckDuckGo.js --env chrome --reporter=junit
組み込みのJUnit-XMLレポートとHTMLレポートの両方を生成するには、次のコマンドを実行します(v2.2以降)。
npx nightwatch examples/tests/duckDuckGo.js --env chrome --reporter=junit --reporter=html
ステップ3:JUnit XMLレポートの表示
JUnit XMLレポートは、現在のプロジェクトディレクトリ内のローカル`tests_output`フォルダに生成されているはずです。次のようになります。
Jenkinsとの統合
JUnit形式のXML出力は、「JUnitテスト結果レポートの公開」ビルド後アクションを介して、Jenkinsにデフォルトで統合されます。

テストレポートをJenkinsに統合することにより、トレンドとレポートを生成し、Jenkinsのレポート機能を最大限に活用できます。

詳細は、Jenkinsユーザーガイドを参照してください。
JUnitスキーマ
Apache Ant JUnit XML `.xsd`スキーマの完全版は、Githubで入手できます:windyroad/JUnit-Schema/blob/master/JUnit.xsd.
JUnitレポートの無効化
`output_folder`設定を`false`に設定することで、必要に応じてレポートを完全に無効化できます。
module.exports = {
output_folder: false
}