对于Cypress,使用命令获取fixture数据



我有以下fixture文件myfile

[
{
"instance": "feature",
"baseUrl": "http://1.1.1.1",
},
{
"instance": "non-feature",
"baseUrl": "http://1.1.1.1",
}
]
我有下面的命令来获取baseUrl
Cypress.Commands.add('getBaseUrl',() => {
let baseUrl;
cy.fixture('myfile').then(function (defaultdata) {
this.defaultdata = defaultdata;
var index = this.defaultdata.findIndex(obj => obj.instance == 
Cypress.env('instance'));
baseUrl =this.defaultdata[index].baseUrl;
return baseUrl;
})
})

但是当我尝试使用它时,我得到:log Object{5}而不是baseUrl

的值
describe('Tests', () => {
it('is redirected on visit to /dashboard when not authenticated', function () {
cy.log(cy.getBaseUrl());
})
})

可能是一些同步逻辑,但我不能设法使它。如果我在命令中包装baseUrl,我可以看到值,但没有运气通过传递它。

问题在于我使用命令的方式。像这样的工作很好:

describe('Tests', () => {
it('is redirected on visit to /dashboard when not authenticated', function () {
cy.getBaseUrl().then(data => {
cy.log(data);
})
})
})

最新更新