#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 ]