Cypress записать настроенные журналы в файл с writeFile это хорошая идея? - PullRequest
0 голосов
/ 18 декабря 2018

Я хотел бы записать некоторые настраиваемые журналы в файлы с cypress.Например, «имя текущего теста», «идентификатор пользователя, использованный для этого теста», «сбой или прохождение» и т. Д.

Я некоторое время гуглил, обнаружил, что cy.writeFile соответствует моим потребностям.Но, похоже, большинство людей рекомендуют cy.task для ведения журнала.

Так что, cy.writeFile для ведения журнала - хорошая идея?Если нет, то в чем причина?

Спасибо!

Кстати, вот коды, очень простые:

function logger (log) {
  cy.writeFile('logs/combined.log', log + '\n', { flag: 'a+' })
}

module.exports = {
  logger
}

1 Ответ

0 голосов
/ 24 декабря 2018

Команда cy.task () обычно используется, когда вы не хотите, чтобы сами тесты прерывали ведение журнала, или если вы хотите взаимодействовать с самим процессом узла.Принимая во внимание, что cy.writeFile () должен вызываться между каждым тестом и не может взаимодействовать с процессом узла.Вы можете добавлять вещи в свои файлы плагинов, чтобы можно было создавать непрерывные журналы независимо от выполняемого теста, и объединять эти вещи в один файл.

// in plugins/index.js file
on('task', {
  readJson: (filename) => {
    // reads the file relative to current working directory
    return fsExtra.readJson(path.join(process.cwd(), filename)
  }
})

https://docs.cypress.io/api/commands/task.html#Command

cy.task () предоставляет аварийный штрих для запуска произвольного кода Node, поэтому вы можете выполнять действия, необходимые для ваших тестов, за пределами Cypress.Это отлично подходит для:

Заполнения тестовой базы данных.Сохранение состояния в узле, которое вы хотите сохранить между файлами спецификаций.Выполнение параллельных задач, таких как создание нескольких http-запросов вне Cypress.Запуск внешнего процесса.В событии плагина задачи команда завершится ошибкой, если будет возвращено undefined.Это помогает отловить опечатки или случаи, когда событие задачи не обрабатывается.

Если вам не нужно возвращать значение, явно возвращайте ноль, чтобы указать, что данное событие было обработано.

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