javascript - 在不同文件中使用 Cypress 函数
问题描述
我正在尝试在与主要文件(即测试文件)不同的文件中使用 cypress 函数。我想知道这是否可能。实际上,我是这样做的:这是我的 test.js 文件中的代码;请注意,第一个功能是我想要做的;第二个功能正常工作,我对此没有任何问题。我尝试这样做的原因是我可能需要多次重用同一个函数。
我的树文件夹:
static_copied
pages
cities
Rome
New York
Bombay
Tokyo
London
Moscow
test.js
文件:
const pathCities = 'static_copied/pages/cities'
it('Retrieve cities from static and divide links', () => {
let cities1 = misc.retrieveCities()
console.log(cities1)
// this works
cy.task('readFolder', pathCities).then(cities => {
console.log('cities ', cities, typeof cities) // prints an array of cities, and 'object'
})
})
})
我的misc.help.js
文件:
const pathCities = 'static_copied/pages/cities'
module.exports = {
retrieveCities,
[...]
}
[...]
function retrieveCities() {
cy.task('readFolder', pathCities).then(res => {
console.log('here', res, typeof res)
return res
})
}
最后是我的cypress/plugins/index.js
文件:
const fs = require('fs')
// opens devTools by default
module.exports = (on, config) => {
[...]
// reads a folder, both folder and file names
on('task', {
readFolder(path) {
let foldersAnFiles = fs.readdirSync(path, 'utf8')
console.log('--->', foldersAnFiles, typeof foldersAnFiles)
let folders = []
// if its a file, exclude from result
foldersAnFiles.filter(function (folder) {
if (folder.indexOf('.') === -1) {
folders.push(folder)
}
})
return folders
},
})
}
发生的情况是,在misc.help.js
文件中,打印是正确的:在retrieveCities()
函数中,此控制台日志console.log('here', res, typeof res)
正确打印了一个数组。但是当我在主测试文件中返回它时,console.log(cities1)
打印undefined
.
有没有办法将我的结果传递给主文件?
解决方案
将此添加到您的命令文件中,然后调用cy.retrieveCities()
任何测试文件,它将起作用。
Cypress.Commands.add('retrieveCities', () => {
return cy.task('readFolder', pathCities).then(res => {
return res
})
})
推荐阅读
- watchdog - JTAG 调试器如何停止看门狗定时器
- swift - Swift,无法将 Firebase 存储 URL 获取到数据库
- wordpress - 在 Elementor 中使用 Accordion 关闭内容很困难
- java - 如何使用 StanfordCoreNLP 添加用户字典
- android - Android Studio:生成签名 apk 以更新现有应用程序时出现“未安装应用程序”错误
- android - 数据库存储API和DOM存储API有什么区别
- php - 如何使用 DOMDocument PHP 从网站获取类值
- ms-access - Ms Access ListBox,由vba代码设置时值未更新为所选项目
- model - 导出带有纹理和材质的虚幻引擎模型
- linux - 命令行中施加的时间限制似乎并没有限制运行时间