Cypress で console.log 的にターミナルにプリントデバッグしたいとき

結論

task という機能(コマンド)を使います。公式ドキュメントのとおりです。

docs.cypress.io

cypress/plugins/index.js に上記の内容をコピペします。

プリントデバッグしたい箇所で、

cy.task('log', 'This will be output to the terminal')

のように書きます。

補足

ログの場所はそこそこ見つけづらいので、

  on('task', {
    log(message) {
      console.log(`[cy.log] ${message}`)

      return null
    },
  })

のように装飾してもいいかもしれません。

さらに補足

cy.log('hoge') と書きたい場合には cypress/support/index.js に以下のように書き加えます。

Cypress.Commands.overwrite('log', (subject, message) => cy.task('log', message))

ただしこれは、全ての cy.log に影響を与えます。また、TypeScript の場合は型定義に注意する必要があります。

Powered by はてなブログ