簡體   English   中英

賽普拉斯:使用不同的數據多次運行整個測試套件

[英]Cypress: run entire test suite multiple times with different data

我看過幾篇關於使用不同參數運行單個測試的帖子。 它也被記錄在這里

但是,我找不到任何關於如何運行整個測試套件的示例,即使用不同的數據多次測試cypress/integration文件夾中的多個文件。

我的場景是我想從我正在調用的 API 中提取不同的響應,並針對不同的響應運行所有測試用例。 所以對於第一次運行,我會輸入support/index.js

beforeEach(() => {
  cy.intercept("GET", "example/API", { fixture: "fixture1.json" });
});

對於第二次運行,我會說:

beforeEach(() => {
  cy.intercept("GET", "example/API", { fixture: "fixture2.json" });
});

等等。 對於不同的響應,我所有的測試用例都是相同的,我希望它們具有相同的結果,無論 API 返回的數據如何。

運行具有不同參數的套件

cypress run --env fixture=fixture1
// or
cypress run --env fixture=fixture2

參考環境變量

在支持/index.js

beforeEach(() => {
  const fixtureName = `${Cypress.env('fixture')}.json`
  cy.intercept("GET", "example/API", { fixture: fixtureName });
})

無論 API 返回的數據如何,我都希望它們具有相同的結果——我不確定這究竟意味着什么,但對我來說,這表明您不必擔心更換夾具。


如果您想從命令行進行一次調用來運行整個套件,例如每次使用不同的夾具 3 次,請考慮使用賽普拉斯模塊 API

在腳本文件中,例如/scripts/run-fixtures.js

const fixtures = ['fixture1.json','fixture2.json','fixture3.json']  

const cypress = require('cypress')

fixtures.forEach((fixtureName) => {

  cypress.run({
    reporter: 'junit',
    browser: 'chrome',
    config: {
      baseUrl: 'http://localhost:8080',
      video: true,
    },
    env: {
      fixture: fixtureName,
    },
  })
})

使用node /scripts/run-fixtures運行它。

support/index.js 同上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM