在node_modules中对代码进行符号链接时,为代码覆盖配置jest

are*_*ick 6 javascript code-coverage node.js jestjs

我正在尝试使用Jest重新构建一个Node项目进行测试.起初,我有我的所有.js,并.test.js在同一目录中的文件,并且一切都很好在世界- jest --coverage做了我的预期.

我现在改变了我的目录结构,测试工作,但我的报道报告没有.

这是我的目录结构,编辑删除node_modules 除了我的lib文件夹的符号链接.我正在通过符号链接关注我的模块提示requiring.

? tree
.
??? README.md
??? build
?   ??? index.js
??? jest.config.js
??? lib
?   ??? path.js
?   ??? pen.js
?   ??? section.js
?   ??? sprite.js
?   ??? utilities.js
??? node_modules
?   ??? itch <= symlink to my `lib` folder
??? package-lock.json
??? package.json
??? test
    ??? env
    ?   ??? foo.html
    ??? path.test.js
    ??? pen.test.js
    ??? section.test.js
    ??? sprite.test.js
    ??? utilities.test.js
Run Code Online (Sandbox Code Playgroud)

这是我的 jest.config.js

module.exports = {
  verbose: true,
  collectCoverage: true,
  collectCoverageFrom: ["**/lib/**/*.js", "**/test/**/*.js"]
};
Run Code Online (Sandbox Code Playgroud)

这是我scriptspackage.json

"scripts": {
    "test": "jest",
    "build": "mkdir -p ./dist && browserify index.js --standalone Itch > ./dist/itch.js"
}
Run Code Online (Sandbox Code Playgroud)

npm test除了我的代码覆盖率报告以外,所有工作原理0如下:

Test Suites: 5 passed, 5 total
Tests:       38 passed, 38 total
Snapshots:   0 total
Time:        1.316s
Ran all test suites.
--------------|----------|----------|----------|----------|----------------|
File          |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
--------------|----------|----------|----------|----------|----------------|
All files     |        0 |        0 |        0 |        0 |                |
 path.js      |        0 |        0 |        0 |        0 |... 109,111,115 |
 pen.js       |        0 |        0 |        0 |        0 |... 106,107,113 |
 section.js   |        0 |        0 |        0 |        0 |... 89,90,92,95 |
 sprite.js    |        0 |        0 |        0 |        0 |... 200,202,205 |
 utilities.js |        0 |        0 |        0 |        0 |... 55,57,58,62 |
--------------|----------|----------|----------|----------|----------------|
Run Code Online (Sandbox Code Playgroud)

但是,当我返回.js.test.js在同一目录下的文件是,我的代码覆盖率100%.

我认为我的问题是我的collectCoverageFrom变量和/或我对require模块使用符号链接.

这个问题的推动下,我也尝试在我的目录中添加一个package.jsonname我的包相同的属性lib,但无济于事.

为了测试问题与符号链接的想法,我还尝试删除符号链接并将我的lib文件夹直接移动到我的node_modules文件夹中.然后,当我跑步时npm test,我收到了所有Unknown测试报道,即.

Test Suites: 5 passed, 5 total
Tests:       40 passed, 40 total
Snapshots:   0 total
Time:        1.576s
Ran all test suites.
----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |  Unknown |  Unknown |  Unknown |  Unknown |                |
----------|----------|----------|----------|----------|----------------|
Run Code Online (Sandbox Code Playgroud)

所以现在,我有点卡住了.任何帮助,将不胜感激.谢谢!