[英]console.log not working on any karma project
更新:tl;博士; 我更新了我的 npm 包,在 karma 中再也看不到任何console.log
输出。 看起来它是行为更改的 b/c,仅在LOG_DEBUG
级别显示console.log
输出并将其隐藏在LOG_INFO
。 该更改是何时进行的,有没有办法恢复它?
原文:当我从 Windows 命令提示符运行 karma 时,我看不到console.log
的输出。 我曾经在很多项目中看到它很好,但现在它突然在我的任何项目中都不起作用。 这似乎在我在一个项目中运行npm update
后发生了变化。 我没有npm update
任何其他项目,但它们都停止工作了。
我用一个干净的项目创建了一个 MCVE,但我仍然看到相同的行为。 这是我的干净项目中已安装软件包的列表(来自npm list
的输出)
C:\...\mvce>npm list
mvce@1.0.0 C:\...\mvce
+-- jasmine-core@2.5.2
+-- karma@1.5.0
+-- karma-chrome-launcher@2.0.0
+-- karma-jasmine@1.1.0
+-- karma-phantomjs-launcher@1.0.2
`-- phantomjs@2.1.7
这是配置代码
karma.conf.js
module.exports = function(config) {
config.set({
autoWatch: false,
singleRun: true,
basePath: ".",
frameworks: ["jasmine"],
logLevel: "INFO",
browsers: ["PhantomJS", "Chrome"],
files: ["test.js"]
});
};
test.js
describe("describe", function(){
it("it", function(){
console.log("test");
});
});
请注意,我已经尝试将这两个添加到我的karma.conf.js
中。 他们没有区别。
client: {
captureConsole: true
}
// or
loggers: [
{ type: "console" }
]
注意:我在 karma github 上看到过这个问题,那里的建议都没有帮助。 此外,它描述了一个带有 mocha 的设置,我正在使用 jasmine - 官方解决方法是使用我尝试过的captureConsole
。
我还为这个问题创建了一个要点。
环境信息:
看起来 karma 在 v1.5.0 中添加了一个功能来按日志级别过滤控制台捕获。 这是git pull 请求的链接, 代码更改显示发生了什么。 我在文档中找不到有关此新功能的任何更新。 基于代码更改,这里是新规则
您可以在 karma conf 文件中配置browserConsoleLogOptions
以指定应在终端输出中显示哪些消息。 设置level
属性以指定应显示的最大级别。 要显示所有消息,请将level
设置为空字符串。
对于我的情况,我需要这样设置:
browserConsoleLogOptions: {
terminal: true,
level: ""
}
更新:有一个open git issue讨论这个。 实际上,业力 1.5 中有两个变化在这里很重要。
LOG
== DEBUG
。 严重性使用LOG
> INFO
。 这意味着任何将日志级别设置为INFO
的项目都会在旧版本中显示console.log
消息,而不会在新系统中显示它们。browserConsoleLogOptions
添加了按日志级别过滤控制台的支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.