Node.js cy.readFile是否导致超时?

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

我正在尝试读取一个JSON文件,该文件是我在同一个cypress项目中用另一个测试编写的。但是,当它尝试读取文件时,会在4000毫秒后超时

以前有人经历过吗?我该怎么解决呢

我已经尝试通过给它一个设置对象来增加超时时间,但这并没有增加超时时间。我认为这可能是一个文件权限问题,但似乎也不是

我在Mac上运行,但在Windows上尝试了相同的项目,结果相同

  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;
                });
            });

我试过你的答案,不幸的是问题一直困扰着我。还有什么可能导致错误吗?我将使用不同的方法来解决这个问题。谢谢你的帮助