使用 Mocha 选项执行测试

specs 文件夹中的测试文件由 describe 和 it 块组成。describe 块指的是测试套件,而 it 块指的是测试用例。describe 块可以有多个块。

有关如何创建 describe 和 it 块的详细信息,请参阅标题为"使用 Webdriverio 的快乐路径流"的章节。

要验证从开发团队获得的新构建是否健康,我们不需要执行套件中的所有测试用例。我们确定了一些用于冒烟/健全性测试的测试用例,一旦我们有了新构建,就会执行它们。

我们可以使用名为 Grep 的 Mocha 选项对测试用例进行分组并一起运行它们。为此,我们必须在 it 描述中添加一个关键字,例如 Smoke。然后在运行时,我们可以指示 WebdriverIO 测试仅触发描述中包含 Smoke 的 it 块。

让我们以一个包含四个 it 块的测试文件为例。在四个 it 块中,有两个 it 块的描述中包含关键字 Smoke。

首先,请按照标题为"使用 WebdriverIO 的快乐路径流"一章中的步骤 1 到 5 进行操作,如下所示 −

步骤 1 − 安装 NodeJS。有关如何执行此安装的详细信息在标题为"开始使用 NodeJS"一章中详细说明。

步骤 2 − 安装 NPM。有关如何执行此安装的详细信息在标题为"安装 NPM"一章中详细说明。

步骤 3 − 安装 VS Code。有关如何执行此安装的详细信息在标题为"安装 VS Code"一章中详细说明。

步骤 4 − 创建配置文件。有关如何执行此安装的详细信息,请参阅"配置文件生成"一章。

步骤 5 − 创建一个 spec 文件。有关如何执行此安装的详细信息,请参阅"Mocha 安装"一章。

步骤 6 − 在创建的 Mocha spec 文件中添加以下代码。

//import chai library
const c = require('chai').expect
//library for parsing JSON file
const s =require('fs')
let h = JSON.parse(s.readFileSync('test/testData/test1.json'))
// test suite name
describe('Tutorialspoint application', function(){
   //iterate the test case
   h.forEach(  ({email,password})  =>{
      //test case
      it('Data Driven testing', function(){   
         // launch url
         browser.url('https://www.linkedin.com/login')  
         //identify the email field then enter key - email
         $("#username").setValue(email)
         //identify password field then enter key - password
         $("#password").setValue(password)
         //identify SSign in button then click
         $("button[type='submit']").click() 
         //verify error message
         const e = $('#error-for-password')
         console.log(e.getText() + ' - Error Text') 
         //verify Alert text with Chai assertion
         c(e.getText()).to.equal("The password must be provided.")
      });
   });
   // it is blocked with Smoke keyword
   it('Identify element with Id - Smoke', function(){
      // launch url
      browser.url('https://the-internet.herokuapp.com/redirector')
      //identify element with id then click
      $("#redirect").click()
      //obtain page title
      console.log('Page title after click: ' + browser.getTitle())
   });
   // it block with Smoke keyword
   it('Identify element with Tagname - Smoke', function(){    
      // launch url
      browser.url('https://www.tutorialspoint.com/about/about_careers.htm')
      //identify element with tagname then obtain text
      console.log($("<h1>").getText() + " - is the text.")
   });
   //test case
   it('Identify element with Class Name', function(){        
      // launch url
      browser.url('https://www.tutorialspoint.com/about/about_careers.htm')
      //identify element with Class Name then obtain text
      console.log($(".heading").getText() + " - is the text.")
   });
});

要仅触发与 Smoke 相关的 it 块,请使用以下命令运行配置文件 - wdio.conf.js 文件 −

npx wdio run wdio.conf.js --mochaOpts.grep Smoke

有关如何创建配置文件的详细信息在标题为 Wdio.conf.js 文件的章节和标题为配置文件生成的章节中进行了详细讨论。

您的计算机上将显示以下屏幕 −

Execute Tests Mocha Options

命令成功执行后,我们发现在四个 it 块中,只有两个 it 块(描述中有 Smoke 标签)已被执行。