cy.readFile导致超时?

奈杰尔

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

有谁之前经历过这个吗?我该如何解决?

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

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

  before('grab generated user data', function (){
      let data = cy.readFile("Generated User/Cypress test 131.json", {log:true, timeout: 180000});
}

我希望它只返回已解析的JSON对象。如赛普拉斯文档中所述。https://docs.cypress.io/api/commands/readfile.html#Syntax

奈杰尔

我最终用cy.createFileSync()创建了一个data.json。当我想读取文件而不使用cypresses cy.readFile()函数时,我创建了一个使用fs库读取文件的cypress任务。

我留下了我用来读取文件的任务的代码片段。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章