2

我想使用 nyc 来生成代码覆盖率。我正在将我的一些项目构建到 node_modules 中,以便在其他项目中使用它们。在编写测试时,我想测试 node_modules 中的文件,因此我想包含 node_modules 中的文件。

项目-示例-结构

1. foo (directory)
    1.1 bar (directory)
        1.1.1 node_modules (directory)
            1.1.1.1 someFile.js // I want to include this!
        1.1.2 foobar
            1.1.2.1 foobar.js // this file works
        1.1.3 .nycrc

.nycrc

{
"reporter": [
    "html",
    "text"
],



"all": true,

"cwd": "../",

"report-dir": "./bar/test-run/coverage",
"include": [
    "./bar/**/foobar/*.js",
    "./bar/**/node_modules/*.js",
]
}

在终端执行

nyc mocha

解释

nyc 使用 .nycrc。cwd:更改工作目录。我希望能够包含父目录的文件。可悲的是,包括似乎无法使用“../”。

在包含标志内,我指定应包含哪些文件:“./bar/foobar/foobar.js”不知何故不起作用。但是:“./bar/**/foobar/foobar.js”包括 foobar.js。

预期行为

应该包括 someFile.js。应该包括 foobar.js。

观察到的行为

包括someFile.js 。包含foobar.js 。

环境

macOS 塞拉利昂

纽约 11.8.0

4

1 回答 1

1

你必须修改你的配置文件

{
"include": [
      "node_modules/**/<fileName>.js"
 ],
"excludeNodeModules": false
}
于 2019-07-05T10:00:00.193 回答