cy.readFile приводит к тайм-ауту? - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь прочитать файл 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.Как говорится в Cypress Docs.(https://docs.cypress.io/api/commands/readfile.html#Syntax)

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

В итоге я создал файл data.json с помощью cy.createFileSync ().Когда я хочу прочитать файл вместо использования функции cypresses 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);
                    }
                });
            });
        }

Для вызова этой функции достаточно простого

 let id = 0;

            before('grab generated user data', function (){
                cy.task('getLastId').then((newID)=>{
                    id = newID;
                });
            });
0 голосов
/ 07 февраля 2019

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

или

 before('grab generated user data', function (){
        cy.readFile("Cypress-test-131.json", {log:true, timeout: 4000}).its('name').should('eq', 'Eliza')
    })

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...