iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 17
1

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。


網誌版


上一篇
Nightwatch101 #16:簡單測試範例
下一篇
Nightwatch101 #18:依照分組做測試(Test Groups)
系列文
Nightwatch101:使用 Nightwatch 實現 End-to-End Testing30

尚未有邦友留言

立即登入留言