有什么方法可以从赛普拉斯测试运行程序输出文件?

时间:2019-03-04 13:45:11

标签: typescript cypress

我的测试调用的API生成了错误文件。错误输出到文件,&屏幕显示错误文件ID。 在测试仍在运行的同时,我可以使用apiKey和fileID下载这些文件,但是此后它就消失了。 如果可以将此文件输出到我的浏览器(通过下载),以便可以看到它,将非常方便。目前,我只能通过在测试代码中添加cy.pause()来获得它,以在创建错误文件后暂停测试。

向我显示fileID的代码行:

cy.log('resultsCsvFileId: ' + res.import.resultsCsvFileId);

1 个答案:

答案 0 :(得分:1)

您实际上可以如下使用cy.writeFile()

cy.request('https://dummy.url').then((response) => {
  cy.writeFile('cypress/fixtures/response.csv', response.import.resultsCsvFileId)
})

您可以在此处参考文档-https://docs.cypress.io/api/commands/writefile.html#JSON

但是,这每次都会覆盖文件。这是将所需数据附加到CSV文件的解决方法,

  1. 安装npm软件包csvdata https://www.npmjs.com/package/csvdata

    npm install --save-dev csvdata

  2. 在cypress项目->插件index.js文件中,放置以下代码,

const csvdata = require('csvdata')
on('task', {
    log(message) {
        csvdata.write('./logs.csv', message, {
            append: true,
            header: 'stats,numusers'
        })
        return null
    }
})

  1. 从现在开始,所有log任务都将附加到CSV文件中,

describe('My First Test', function() {
    it('Visits the Kitchen Sink', function() {
      cy.visit('https://example.cypress.io')
      cy.contains('type').then(($el) => {
          var data = "inService, 30";
          cy.task('log', data)
      })
    })
})

参考: https://github.com/cypress-io/cypress/issues/1249