[英]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.