Nightwatch101 #17:Nightwatch Test Runner

Nightwatch.js

Nightwatch 提供 Command Line Test Runner,便於設定、跑測試和產生測試報告。本篇先來探討安裝方式的差異和如何針對單檔、多檔、單檔+資料夾進行測試。

♡(´∀`)人(´∀`)♡

本系列文章皆使用這個專案,可以拉下來玩玩;有什麼問題都可以提出 issue


安裝方式

兩種不同的安裝方式「全域安裝」(Global)和「限定專案安裝」(Project Specific)。

全域安裝

假設將 Nightwatch 全域安裝,則 Nightwatch 可在任何地方使用,不限於特定專案內。

地球

啟動 Nightwatch。

nightwatch [source] [options]

指定環境為 local 以進行測試。

nightwatch --env local

限定專案安裝

若只在特定專案內安裝 Nightwatch,則可依以下方式啟動 Nightwatch。

啟動 Nightwatch。

./node_modules/nightwatch/bin/nightwatch [source] [options]

資料夾

限定專案安裝可讓我們根據專案需求而使用不同版本的 Nightwatch 外,也能在 package.json 中一目了然目前跑測試所用版本,比起全域安裝是更好的選擇。

執行測試

可以測試單檔、多檔、單檔+資料夾。

EX1:測試一個檔案

若要測試單一檔案,在 nightwatch 後加上檔案路徑即可。

nightwatch test/e2e/testDemo.js

執行結果。

測試一個檔案

EX2:測試兩個檔案,或多檔

若要測試多個檔案,也是在 nightwatch 後加上檔案路徑。

注意,這裡無法指定跑測試的順序喔!所以每個 Test Suite 是要能獨立運作的。

nightwatch test/e2e/class/testMainCategory.js test/e2e/class/testSubCategory.js

執行結果。

測試兩個檔案

EX3:測試一個檔案,再加上一個資料夾底下的所有檔案

測試單檔就加上檔案路徑,若是某個資料夾底下就加上資料夾所在位置。

nightwatch test/e2e/testDemo.js test/e2e/class

執行結果。

測試一個檔案,再加上一個資料夾底下的所有檔案

常用 Command-line Options

Nightwatch Test Runner 提供許多不同的選項設定。

想要查詢 Nightwatch Test Runner 的選項設定,可這樣使用

nightwatch --help

或簡寫

nightwatch -h

接著得到結果。

常用 Command-line Options

將常用 Command-line Options 整理成表格以供參考。

選項名稱 縮寫 預設值 功能描述
–config -c ./nightwatch.json 設定 nightwatch.json 的路徑。Nightwatch Test Runner 和 Selenium Webdriver 皆會使用這個設定檔。
–output -o tests_outputs JUnit XML 測試報告的所在位置。
–reporter -r junit 預設定義報告所用的產生器名稱,或客製化報告工具所在的路徑。
–env -e default 定義在 nightwatch.json 中選用的測試環境。
–verbose     顯示其它擴充的 selenium 指令。
–version -v   目前所用 Nightwatch 的版本。
–test -t   指定只跑特定的 Test Suite 或 Module。Test Runners 在預設情況下會跑所有 src_folders 所列的所有資料夾(含其子資料夾)。
–testcase     與 –test 合併使用。在目前的 Test Suit 或 Module 跑特定的 Test Case。
–group -g   只跑指定的 group 的測試程式。
–skipgroup -s   忽略指定的 group 的測試程式。
–filter -f   使用 glob expression 設定 filter,用來在載入檔案時利用 filter 過濾測試程式的檔名。
–tag -a   指定只跑特定的標籤的測試程式。
–skiptags     忽略特定的標籤的測試程式,使用逗點分隔。
–retries     重跑 n 次失敗或錯誤的 Test Case,n 即指定次數。重跑時也會重新執行 Test Hooks(beforeEach and afterEach)。
–suiteRetries     重跑 n 次失敗或錯誤的 Test Suite / Test Module,n 即指定次數。重跑時也會重新執行 Test Hooks(before and after)。

Nightwatch Test Runner 提供許多不同的選項設定,待之後篇章一一介紹。

下一篇來看 Test Groups。


2018 鐵人賽網址


Nightwatch Nightwatch101 Selenium End-to-End Testing 端對端測試 鐵人賽 2018鐵人賽 自動化測試 Nightwatch101 2018 iT 邦幫忙鐵人賽 系列文