console.log 没有从事任何业力项目
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 上看到 this issue,那里的建议 none 有帮助。此外,它描述了一个带有 mocha 的设置,我正在使用 jasmine - 官方解决方法是使用我尝试过的 captureConsole
。
我还为这个问题创建了一个gist。
环境信息:
- Windows 10 个主页,包含所有当前更新
- 节点 v7.2.1
- Chrome 56
看起来 karma 在 v1.5.0 中添加了一个功能来按日志级别过滤控制台捕获。这是 link 到 git pull request and the code changes 显示发生了什么。我在文档中找不到有关此新功能的任何更新。根据代码更改,这里是新规则
您可以在您的 karma conf 文件中配置 browserConsoleLogOptions
以指定您的终端输出中应显示哪些消息。设置 level
属性 以指定应显示的最大级别。要显示所有消息,请将 level
设置为空字符串。
对于我的情况,我需要这样设置:
browserConsoleLogOptions: {
terminal: true,
level: ""
}
更新:open git issue 正在讨论这个问题。 karma 1.5 中实际上有两个变化在这里很重要。
- 他们更改了日志消息的严重性顺序,因此
LOG
== DEBUG
。使用的严重性 LOG
> INFO
。这意味着任何将日志级别设置为 INFO
的项目都会在旧版本中显示 console.log
消息,而不会在新系统中显示它们。
- 如上所述,他们使用
browserConsoleLogOptions
添加了对按日志级别过滤控制台的支持。
更新: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 上看到 this issue,那里的建议 none 有帮助。此外,它描述了一个带有 mocha 的设置,我正在使用 jasmine - 官方解决方法是使用我尝试过的 captureConsole
。
我还为这个问题创建了一个gist。
环境信息:
- Windows 10 个主页,包含所有当前更新
- 节点 v7.2.1
- Chrome 56
看起来 karma 在 v1.5.0 中添加了一个功能来按日志级别过滤控制台捕获。这是 link 到 git pull request and the code changes 显示发生了什么。我在文档中找不到有关此新功能的任何更新。根据代码更改,这里是新规则
您可以在您的 karma conf 文件中配置 browserConsoleLogOptions
以指定您的终端输出中应显示哪些消息。设置 level
属性 以指定应显示的最大级别。要显示所有消息,请将 level
设置为空字符串。
对于我的情况,我需要这样设置:
browserConsoleLogOptions: {
terminal: true,
level: ""
}
更新:open git issue 正在讨论这个问题。 karma 1.5 中实际上有两个变化在这里很重要。
- 他们更改了日志消息的严重性顺序,因此
LOG
==DEBUG
。使用的严重性LOG
>INFO
。这意味着任何将日志级别设置为INFO
的项目都会在旧版本中显示console.log
消息,而不会在新系统中显示它们。 - 如上所述,他们使用
browserConsoleLogOptions
添加了对按日志级别过滤控制台的支持。