automated-tests - 使用 Cypress 使用命令获取夹具数据
问题描述
我有以下夹具文件调用 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);
})
})
})
推荐阅读
- javascript - 通过正则表达式的猫鼬钩子没有被触发
- node.js - 使用 npm 依赖的 .npmrc
- wpf - 需要 WPF 示例中的材料设计应用程序
- python - 使用 simpleimputer python 清理数据时出错
- mysql - 一个表中的Mysql数据不存在于另一个表中
- angular - aggregatesRenderer 表添加点击无法正常工作
- autodesk-forge - BIM360 问题 - 快照 URN 图像
- java - 注销springboot jwt
- javascript - 有没有更好的方法来访问 Angular 的组件私有属性?
- git - Digital Ocean App Platform 不支持 GitHub 的相关子模块