Nightwatch101 #17:Nightwatch Test Runner
27 Dec 2017Nightwatch 提供 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 整理成表格以供參考。
選項名稱 | 縮寫 | 預設值 | 功能描述 |
---|---|---|---|
–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。