console.log不适用于任何业力项目

时间:2017-02-21 21:22:49

标签: karma-runner karma-jasmine

更新:tl; dr;我更新了我的npm软件包,并且在业力中无法再看到任何console.log输出。看起来是行为更改的b / c仅在LOG_DEBUG级别显示LOG_INFO输出并将其隐藏在console.log。什么时候做出改变,有没有办法将其还原?

ORIGINAL:当我从Windows命令提示符运行karma时,我看不到npm update的输出。我曾经在许多项目中看到它很好,但现在它突然没有在我的任何项目中工作。在一个项目中运行npm update之后,这似乎已经改变了。我没有npm list任何其他项目,但他们都停止了工作。

我创建了一个带有干净项目的MCVE,但我仍然看到了相同的行为。这是我的清洁项目中已安装软件包的列表(从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" } ] 。他们没有任何区别。

captureConsole

注意:我在karma github上看过this issue,没有任何建议有帮助。此外,它还描述了使用茉莉花的mocha设置,而官方的解决方法是使用我尝试过的<div align="center"> <div style="display: inline-block"> <img src="img1.png"> </div> <div style="display: inline-block"> <img src="img2.png"> </div> </div>

我还为此问题创建了gist

环境信息:

  • Windows 10 Home w /所有最新更新
  • Node v7.2.1
  • Chrome 56

1 个答案:

答案 0 :(得分:30)

看起来karma在v1.5.0中添加了一个功能来按日志级别过滤控制台捕获。这是指向git pull requestcode changes的链接,显示发生的情况。我无法在有关此新功能的文档中找到任何更新。根据代码更改,以下是新规则

您可以在karma conf文件中配置browserConsoleLogOptions,以指定终端输出上应显示的消息。设置level属性以指定应显示的最大级别。要显示所有消息,请将level设置为空字符串。

对于我的情况,我需要这样设置:

browserConsoleLogOptions: {
    terminal: true,
    level: ""
}

更新:open git issue正在讨论这个问题。业力1.5中实际上有两个变化,这里很重要。

  1. 他们更改了日志消息的严重性顺序,以便LOG == DEBUG。使用的严重性LOG&gt; INFO。这意味着任何项目的日志级别设置为INFO都会在旧版本中显示console.log条消息,而不会在新系统中显示这些消息。
  2. 如上所述,他们通过日志级别browserConsoleLogOptions添加了对过滤器控制台的支持。