【发布时间】:2019-02-03 19:39:04
【问题描述】:
是否可以重定向或捕获赛普拉斯浏览器日志和命令日志以输出?
我在这个主题上阅读了一些 Cypress github issues。但我不知道如何使它工作。
基本上,我想在无头非 GUI 模式下捕获所有 Cypress GUI 命令日志。如果我可以包含浏览器控制台日志会更好。目的是了解测试失败时发生了什么。
我使用 teamcity 作为 ci。这是我的构建日志的示例。我也想在这里查看所有命令日志。实际上,任何使用cy.task 在服务器端运行的console.log 都会显示在构建日志中。运行cy.task('log',message) 太手动了。还有更聪明的方法吗?
[09:49:08][Step 1/1] 2 of 4: new actions (52s)
[09:50:00][Step 1/1] 3 of 4: new actions (52s)
[09:50:53][Step 1/1] 4 of 4: new actions (53s)
[09:51:47][Step 1/1] (Results)
[09:51:47][Step 1/1]
[09:51:47][Step 1/1] ┌─────────────────────────────────────┐
[09:51:47][Step 1/1] │ Tests: 8 │
[09:51:47][Step 1/1] │ Passing: 8 │
[09:51:47][Step 1/1] │ Failing: 0 │
[09:51:47][Step 1/1] │ Pending: 0 │
[09:51:47][Step 1/1] │ Skipped: 0 │
[09:51:47][Step 1/1] │ Screenshots: 0 │
[09:51:47][Step 1/1] │ Video: true │
[09:51:47][Step 1/1] │ Duration: 3 minutes, 38 seconds │
[09:51:47][Step 1/1] │ Estimated: 1 minute, 8 seconds │
[09:51:47][Step 1/1] │ Spec Ran: action/action_spec.js │
[09:51:47][Step 1/1] └─────────────────────────────────────┘
【问题讨论】:
-
看起来他们正在尝试产生一个包罗万象的功能,而不是一个简单的钩子,这是大多数人似乎想要的。 jantoebe 的代码here 看起来很有希望。可能值得问问他在测试中将其添加到哪里。
-
如何将客户端的浏览器日志发送回服务器?使用 jantoebe 替换
console的想法,并以某种方式将日志发送回节点的控制台日志。我是否需要使用cy.task创建一个端点来监听端口? -
使用类似github.com/krakenjs/beaver-logger的东西。这可能有点矫枉过正。
-
是的,绝对是
cy.task将代码运行到 Node 环境中。然后只是 fs 到一个文件,但有一些很好的格式。我也有兴趣为文档捕获命令日志格式的 html(不仅仅是测试),所以document.getElementById('root').innerHTML看起来是这样做的方法。 -
另请参阅 cypress-failed-log 枚举命令 - 看起来对 CI 场景非常有用。
标签: e2e-testing cypress