1

我想将 TestRunner 左侧的数据保存到文本文件(json、纯文本或任何类型的文本)中。

我觉得这应该很容易,而且我只是错过了一些东西。但是,我找不到任何东西来解释这一点。我已经检查了另一个 SO 问题: Cypress pipe console.log and command log to output,它引用了这个当前未解决的问题——但这似乎集中在收集浏览器控制台日志。

我什至尝试了在讨论该未决问题时建议的一种解决方法,即cypress-log-to-output - 但是这会在我启动测试的终端中产生大量输出。我确实尝试将额外的输出与 TestRunner 左侧相对较少的条目相关联,但没有看到任何可以匹配它们的东西。

我只是希望得到一个看起来像这样的文本文件(每个条目可能都有一些细节):

1 visit /
(xhr) GET 200 /todos
2 wait @todos
(req) GET /todos Received todos
...

或者也许是 JSON。

我的动机来自必须为我们的 CI 编写 Cypress 测试,该测试将测试一个非常古老的基于 AjaxSwing 的应用程序,该应用程序大量使用 XHR 请求,并且每次测试运行的 XHR 请求数量可能不同(有时是 8 个,有时是 12 个)只是为了加载第一页)。

AjaxSwing 应用程序没有改变,所以我必须尽可能地解决这个问题。所以我想查看一个完整的文本文件,其中包含来自 TestRunner 左侧的所有信息。甚至可以比较单独的运行,看看我是否可以发现一些“标题”或“正文”值,我可以使用这些值来区分要等待的正确XHR 请求。

任何帮助,将不胜感激。

4

1 回答 1

0

使用log:added事件的一种方法

// top of spec
const logs = []
Cypress.on('log:added', (log) => {
  const message = `${log.consoleProps.Command}: ${log.message}`
  logs.push(message)
})

it('writes to logs', () => {

  ...  // some commands that log

  cy.writeFile('logs.txt', logs)
});
于 2021-10-22T02:53:16.373 回答