【问题标题】:How to include .istanbul.yml when running via Karma public API通过 Karma 公共 API 运行时如何包含 .istanbul.yml
【发布时间】:2015-03-07 07:31:34
【问题描述】:

我基本上是从 node wrapper.js 开始 Karma。该包装器设置配置,包括调用karma-coverage,以require('karma').runner.run 启动Karma。 karma-coverage 呼叫伊斯坦布尔。 (呼!)

我想用.istanbul.yml 文件配置伊斯坦布尔,主要是因为我想更改“报告水印”。这是我的文件的样子。

reporting:
  watermarks:
    statements: [90, 97]
    lines: [90, 97]
    functions: [90, 97]
    branches: [90, 97]

从我所见,这看起来是正确的。但是.. 它不起作用。我认为问题是伊斯坦布尔不知道当前的工作目录,或者需要通过karma-coverage 指定。

如果有帮助,我的 Karma config.basePath 就是 ''

我试图找到有关此特定问题的讨论。可悲的是,@ 987654322@。这是a question/answer discussing this in Grunt,但我无法提取任何有用的信息。

我还在 github 上搜索了 karma-runner 问题,包括开放式和封闭式。查看 karma-runner 的来源并将其组合 with this issue from Istanbul,我认为这是不可能的 because of this line。我说的对吗?

【问题讨论】:

    标签: karma-runner configuration-files istanbul karma-coverage


    【解决方案1】:

    使用以下流程:

    • 转到karma-coverage 模块中的istanbul 目录:

      cd node_modules/karma-coverage/node_modules/istanbul
      
    • 进入lib目录:

      cd lib
      
    • 在此处添加.istanbul.yml 文件

    lib 目录中的config.js 脚本通过以下行找到.istanbul.yml 文件的路径:

     path.resolve('.istanbul.yml')
    

    就是这样。

    path.resolve 方法的工作原理如下:

    如果使用 all from paths 后仍然没有找到绝对路径,则也使用当前工作目录。生成的路径被规范化,并且尾部斜杠被删除,除非路径被解析为根目录。

    参考文献

    【讨论】:

    • 我没有在任何地方的业力覆盖范围内看到伊斯坦布尔。
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2011-02-14
    • 2015-09-29
    • 2015-01-06
    • 2018-01-16
    • 2013-04-08
    相关资源
    最近更新 更多