Nightwatch101 #19:依照標籤做測試(Test Tags)

Nightwatch.js

Nightwatch 允許開發者使用標籤(tag)標記測試程式,在跑測試的時候可指定跑特定標籤的部份。使用標籤的好處是一個測試可有多個不同的標籤,不必受限於分類的唯一和垂直特性,相較有彈性。

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

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


依照標籤跑測試

範例檔案結構如下所示,括號後面是標記的標籤。

tests/e2e
  ├── class
  |   ├── testMainCategory.js (class)
  |   └── testSubCategory.js (class)
  ├── point
  |   ├── test1111.js (campaign, point)
  |   └── testHotTopics.js (point)
  └── testDemo.js (index)

在測試程式中,Test Suite 可設定標籤。這裡有兩個標籤:campaign 和 point。

module.exports = {
  '@tags': ['campaign', 'point'],
  'Demo Ruten Campaign 1111 Page': browser => {
    browser
      .url('http://pub.ruten.com.tw/20171111/index.html')
      .end()
  }
}

指定只跑含有 point 這個標籤的測試程式,所以跑了兩支檔案 test1111.js 和 testHotTopics.js。

nightwatch --tag point

Nightwatch Test Tags

指定跑含有 index 或 campaign 的測試程式,所以跑了 2 支檔案 – testDemo.js 和 test1111.js。

nightwatch --tag index --tag campaign

Nightwatch Test Tags

依照標籤忽略測試

忽略而不跑含有 index 標籤的測試程式,所以跑了 4 支檔案。

nightwatch --skiptags index

Nightwatch Skip Tags

忽略而不跑含有 index 和 campaign 標籤的測試程式,所以跑了 3 支檔案。使用逗點分隔即可,且逗點後不可有空格。

nightwatch --skiptags index,campaign

Nightwatch Skip Tags

總結

在之前的篇章 Nightwatch Test Runner 提到常用 Command-line 選項設定,在本篇於是學到了

下一篇來看禁跑特定測試(Disable Tests),禁跑特定 Test Suite 和 Test Case 的方法。


2018 鐵人賽網址


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