Сбой задачи Cypress и сообщение о том, что событие задачи не было зарегистрировано в файле плагинов

#javascript #cypress

#javascript #cypress

Вопрос:

Я использую cy.task() метод / функцию cypress для копирования csv файла из одного каталога в другой каталог. Ниже приведен мой cy.task('copycsvFile') и соответствующий код, написанный в support/index.js файле. Во время запуска она выдает следующую ошибку; CypressError: cy.task(‘copycsvFile’) завершилась ошибкой со следующей ошибкой: The 'task' event has not been registered in the plugins file. You must register it before using cy.task() Есть идеи, почему это не распознается?

Версия узла: v10.15.3, версия Cypress: 3.1.5

//sample-spec.js файл

 cy.task('copycsvFile');
  

Ниже мой index.js файл
// support/index.js файл

 const fs = require('fs');

module.exports = (on) => {
    on('task', {
        copycsvFile: (Obj)=>{
          var fs = require('fs');
         fs.createReadStream('C:/Users/SomeName/Downloads/Export_Survey_CSV.csv').pipe(fs.createWriteStream('C:/User/Client/Client - Cypress Web UI Tests/cypress/fixtures/Export_Survey_CSV.csv'));
        }
    });
};
  

Ответ №1:

Наконец, я нашел ответ.
Я добавил приведенный ниже код в неправильном месте, и это стало причиной сбоя и возврата вышеуказанной ошибки.
Теперь я исправил местоположение и добавил под plugins/index.js и работает отлично.

Я также внес небольшое изменение, т. Е. добавил return null , поскольку в моем случае мне нечего было возвращать.

// В моем файле спецификации;

 cy.task('copycsvFile');
  

// добавлен приведенный ниже код в разделе .. /plugins/index.js

 const fs = require('fs');
    
module.exports = (on) => {
  on("task", {
    copycsvFile: (Obj) => {
      var fs = require("fs");
      fs.createReadStream(
        "C:/Users/SomeName/Downloads/Export_Survey_CSV.csv"
      ).pipe(
        fs.createWriteStream(
          "C:/User/Client/Client - Cypress Web UI Tests/cypress/fixtures/Export_Survey_CSV.csv"
        )
      );
      return null;
    },
  });
};
  

Ответ №2:

Возникла та же проблема, но для меня другое решение. После обновления до Cypress 10 этот подход (support/index.js ) больше не поддерживается, см.:https://docs.cypress.io/guides/tooling/plugins-guide#cy-task

Комментарии:

1. Это работает с вашей стороны?

2. Я написал, как показано на рисунке, но это все еще не работает [ ibb.co/dKzw3fw ]