如何简化我的 cypress-electron 控制台输出以获得更好的可读性而不包含时间戳和源?
我正在像这样开始我们的 cypress 无头测试:
@SET ELECTRON_ENABLE_LOGGING=true
@SET DEBUG=cypress:electron
@SET CYPRESS_BASE_URL=http://127.0.0.1:15002
npx cypress run --spec "cypress/e2e/01_base.cy.js"
我得到的输出:
[18816:0226/074643.800:INFO:CONSOLE(85)] "mylog message 1", source: http://127.0.0.1:15002/__cypress/tests?p=cypress\support\e2e.js (85)
[18816:0226/074644.607:INFO:CONSOLE(82)] "mylog message 2", source: http://127.0.0.1:15002/editor/webChannel.js (82)
我想得到的输出:
mylog message 1
mylog message 2
我发现了 https://www.npmjs.com/package/electron-log#transport 和 https://github.com/megahertz/electron-log/blob/feaf2f30a74e4c5c809de992296baf0198a6cd66/docs/transports/format.md
但是我在哪里可以设置正确的上下文
log.transports.console.format = '{text}';
?
理想情况下会有一个环境变量来设置格式字符串,但我找不到!
编辑:消息是由客户端应用程序(在电子中运行)发送的,而不是从 cypress 测试中发送的!
提前谢谢!
似乎适用于简单日志的一种方法是通过节点进程、任务来
console.log()
。
cypress.config.js
const { defineConfig } = require("cypress");
module.exports = defineConfig({
e2e: {
setupNodeEvents(on, config) {
on("task", {
log(message) {
console.log(message);
return null;
}
})
},
},
})
我的POC测试:
it('logging to console', () => {
console.log('mylog message 1')
console.log('mylog message 2')
cy.task('log', 'mylog message 3')
cy.task('log', 'mylog message 4')
})