赛普拉斯版本10.3.0
我有一个以下 test.cy.js,它是异步 IT 块。
///
import loadFileObjects from '../../../support/load_file_objects'
var fixtureUrl = '/test/mydata/'
describe("TC1_getResidentialInfo", () => {
var load_test_case;
it('Validate and load all automation feeds', async () => {
load_test_case = await loadFileObjects.getJsonObj(fixtureUrl + '/CUP-575-TC1-TC.json');
})
})
支持/load_file_objects.js
class load_file_objects{
//it should accept fixture folder structure and test case name
//returns json object directly using promise
getJsonObj(testCasePath){
// return new Cypress.Promise((resolve, reject) => {
return new Cypress.Promise((resolve, reject) => {
cy.fixture(testCasePath).then((data) => {
cy.log("Test Data for "+testCasePath+ ": " +JSON.stringify(data))
resolve(data)
})
// do something custom here
})
// var data = data;
// return data
// })
}
}
export default load_file_objects
当我使用 cypress open(测试运行器 UI)运行相同的测试时,它工作正常 请让我在这里缺少什么。
需要在某处创建类实例。
约定类名大写。这是最干净的方法
class LoadFileObjects {
...
export default LoadFileObjects
或
import LoadFileObjects from '../../../support/load_file_objects'
it('Validate and load all automation feeds', async () => {
const loadFileObjects = new LoadFileObjects()
const load_test_case = await loadFileObjects.getJsonObj(fixtureUrl + '/CUP-575-TC1-TC.json');
})
需要夹具
如果固定文件的路径是固定且一致的,那么您可以使用脚本顶部的
require()
为您执行异步/等待繁重工作。
const load_test_case = require('./cypress/fixtures/test/mydata/CUP-575-TC1-TC.json')
我在一些测试中遇到了同样的问题。我的 API 测试不是基于类的,也没有使用固定装置。解决办法是什么?