Node.js cy.readFile是否导致超时?
我正在尝试读取一个JSON文件,该文件是我在同一个cypress项目中用另一个测试编写的。但是,当它尝试读取文件时,会在4000毫秒后超时 以前有人经历过吗?我该怎么解决呢 我已经尝试通过给它一个设置对象来增加超时时间,但这并没有增加超时时间。我认为这可能是一个文件权限问题,但似乎也不是 我在Mac上运行,但在Windows上尝试了相同的项目,结果相同Node.js cy.readFile是否导致超时?,node.js,file,cypress,Node.js,File,Cypress,我正在尝试读取一个JSON文件,该文件是我在同一个cypress项目中用另一个测试编写的。但是,当它尝试读取文件时,会在4000毫秒后超时 以前有人经历过吗?我该怎么解决呢 我已经尝试通过给它一个设置对象来增加超时时间,但这并没有增加超时时间。我认为这可能是一个文件权限问题,但似乎也不是 我在Mac上运行,但在Windows上尝试了相同的项目,结果相同 before('grab generated user data', function (){ let data = cy.re
before('grab generated user data', function (){
let data = cy.readFile("Generated User/Cypress test 131.json", {log:true, timeout: 180000});
}
我希望它只返回已解析的JSON对象。正如柏树文件中所说。()1.您的文件应该位于存在
cypress.json
文件的项目目录中
2.文件名应为Cypresstest131.json
或Cypress-test-131.json
before('grab generated user data', function (){
let data = cy.readFile("Cypresstest131.json", {log:true, timeout: 4000});
data.its('name').should('eq', 'Eliza')
})
或
希望这对您有所帮助我最终使用cy.createFileSync()创建了data.json。当我想读取文件而不是使用cypress cy.readFile()函数时,我创建了一个cypress任务,该任务使用fs库读取文件
const fs = require('fs');
const request = require('request');
module.exports = (on, config) => {
on('task', {
// Cypress task to get the last ID
getLastId: () => {
// Make a promise to tell Cypress to wait for this task to complete
return new Promise((resolve) => {
fs.readFile("data.json", 'utf8', (err, data) => {
if (data !== null && data !== undefined) {
data = JSON.parse(data);
if (data.hasOwnProperty('last_id')) {
resolve(data.last_id);
} else {
resolve("Missing last_id");
}
} else {
resolve(err);
}
});
});
}
我给你留下了我用来读取文件的任务的代码片段
const fs = require('fs');
const request = require('request');
module.exports = (on, config) => {
on('task', {
// Cypress task to get the last ID
getLastId: () => {
// Make a promise to tell Cypress to wait for this task to complete
return new Promise((resolve) => {
fs.readFile("data.json", 'utf8', (err, data) => {
if (data !== null && data !== undefined) {
data = JSON.parse(data);
if (data.hasOwnProperty('last_id')) {
resolve(data.last_id);
} else {
resolve("Missing last_id");
}
} else {
resolve(err);
}
});
});
}
调用此函数将非常简单
let id = 0;
before('grab generated user data', function (){
cy.task('getLastId').then((newID)=>{
id = newID;
});
});
我试过你的答案,不幸的是问题一直困扰着我。还有什么可能导致错误吗?我将使用不同的方法来解决这个问题。谢谢你的帮助