總覽

JSON 報告器是 Nightwatch 中與 HTML 和 XML 報告器一起的預設報告器之一。它以 JSON 格式輸出測試結果,然後可供其他工具使用以視覺化報告。

設定

JSON 報告器從 2.2 版本開始預設啟用,其行為可依以下方式設定

透過設定檔

output_folder 設定檔設定用於指定 JSON 報告檔案的儲存位置。Nightwatch 將每個測試套件檔案的 JSON 報告寫入名為 nightwatch-examples 的子資料夾中。

nightwatch/.../lib/settings/defaults.js
module.exports = { output_folder: 'tests_output' }

如需測試輸出相關設定的完整清單,請參閱設定 > 輸出設定頁面。

透過 CLI

您也可以在執行期間透過 CLI 使用 --output 旗標來設定輸出資料夾

javascript
module.exports = { 
    output_folder: 'tests_output' 
}
nightwatch --output ./tests-output

如需 Nightwatch 接受的 CLI 旗標的完整清單,請參閱CLI 參考頁面

JSON 檔案名稱遵循模式

<瀏覽器>_<版本>__<測試套件檔案名稱>.json

範例

步驟 0:安裝 Nightwatch

請按照指南或觀看影片,從頭開始安裝 Nightwatch。

步驟 1:執行範例測試

請考慮 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 

若要僅產生內建的 JSON 報告,請執行下列命令

npx nightwatch examples/tests/duckDuckGo.js --env chrome --reporter=json 

注意:如果 output_folder 的子資料夾 nightwatch-examples 尚不存在,且如上所示明確提供參數 --reporter=json,則報告將儲存在 output_folder 本身內。

若要產生內建的 JUnit-XML 和 JSON 報告,請執行下列命令 (v2.2+)

npx nightwatch examples/tests/duckDuckGo.js --env chrome --reporter=junit --reporter=json 

步驟 2:檢視 JSON 報告

JSON 報告應該已在目前專案目錄內的本機 tests_output 資料夾中產生。它看起來會像這樣