Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Coverage 0% #921

Closed
catamphetamine opened this issue Sep 22, 2018 · 39 comments
Closed

Coverage 0% #921

catamphetamine opened this issue Sep 22, 2018 · 39 comments

Comments

@catamphetamine
Copy link

I added nyc before mocha as the documentation suggests and it's giving 0% coverage.

    "test": "mocha --bail --require babel-core/register --require ./test/setup.js \"source/**/*.test.js\" \"test/**/*.test.js\"",
    "test-coverage": "nyc mocha --bail --require babel-core/register --require ./test/setup.js \"source/**/*.test.js\" \"test/**/*.test.js\"",
  141 passing (161ms)

----------|----------|----------|----------|----------|-------------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files |        0 |        0 |        0 |        0 |                   |
----------|----------|----------|----------|----------|-------------------|
@3den
Copy link

3den commented Oct 3, 2018

Im have a similar problem:

ERROR: Coverage for lines (0%) does not meet global threshold (90%)

=============================== Coverage summary ===============================
Statements   : 0% ( 0/2807 )
Branches     : 0% ( 0/1571 )
Functions    : 0% ( 0/1015 )
Lines        : 0% ( 0/2678 )
================================================================================

@coreyfarrell
Copy link
Member

We require a link to a demo repository to be able to triage potential bugs.

@flintinatux
Copy link

I'm seeing the same thing, but only in TravisCI. And I've got links!

branch: https://github.com/articulate/paperplane/tree/lambda
travis results: https://travis-ci.org/articulate/paperplane/jobs/450003744

Would very much appreciate any ideas, because I'm unable to repro locally. It's only in TravisCI.

@flintinatux
Copy link

Oh wow. Found the issue. Went back and looked at the Travis runs to see what changed between green and red, and since I was using latest yarn, the version bumped to 1.12.1. When I changed my yarn to a specific version like so:

before_install:
  - npm install -g yarn@1.10.1

That seemed to fix it. Not sure what's up there, but it looks like nyc or one of its deps isn't playing nicely with latest yarn.

@klis87
Copy link

klis87 commented Nov 11, 2018

@flintinatux I confirm it, magically nyc stopped working for me locally despite me dependencies were freezed. Then as a last try to solve impossible I tried to use npm not yarn to run coverage command, and suddenly It started working again!

this is my command: "cover": "nyc --reporter=lcov --reporter=text lerna run test:cover"
while test:cover in packages is "test:cover": "cross-env BABEL_ENV=coverage mocha -r @babel/register -r chai/register-assert 'src/**/*.spec.js'"

So probably this is yarn bug, but it might have something to do with lerna or nyc too.

@onehorsetown
Copy link

Still broken with yarn 1.12.3

@jeremad
Copy link

jeremad commented Nov 30, 2018

I have the same issue here, it works fine with yarn <= 1.10.1, and it stops working after that. if I use npm or if I run nyc manually everything is fine.
So my guess is probably that it is an issue with yarn.

@quentinvernot
Copy link

The plot thickens:

"scripts": {
  "test": "mocha something",
  "coverage": "nyc yarn test"
},

Gives no coverage, but it works with nyc npm run test!

@jeremad
Copy link

jeremad commented Nov 30, 2018

If you want to follow this on yarn side:
yarnpkg/yarn#6746

@JaKXz
Copy link
Member

JaKXz commented Jan 1, 2019

Are people still experiencing this issue with the latest yarn?

@75lb
Copy link

75lb commented Jan 2, 2019

I'm experiencing the same issue, I don't use yarn. Reproduction case posted here: #822.

@quentinvernot
Copy link

@JaKXz Sadly, it still looks broken:

$ yarn coverage
yarn run v1.13.0
$ nyc --reporter=lcov --reporter=text-summary yarn test
$ mocha "packages/**/src/**/*.spec{,.node}.js" --exit --require ./config/tests/babel.setup.js --require ./config/tests/spec.setup.js --recursive --full-trace --trace-warnings --reporter=spec

...

  111 passing (173ms)


=============================== Coverage summary ===============================
Statements   : Unknown% ( 0/0 )
Branches     : Unknown% ( 0/0 )
Functions    : Unknown% ( 0/0 )
Lines        : Unknown% ( 0/0 )
================================================================================

@JaKXz
Copy link
Member

JaKXz commented Jan 2, 2019

Hmm... Still looks like the signal is not passed on from yarn but I'm not 100% sure... Mind retrying in the yarn issue or making a new one there?

@quentinvernot
Copy link

quentinvernot commented Jan 2, 2019

Nevermind, totally works!
I had 2 versions of yarn on my system when running this, I used 1.13.0 from the command line, but the other one (in nyc --reporter=lcov --reporter=text-summary yarn test) was still 1.12.3.

Here is what I get when hard-codding the path to yarn:

$ /home/quentin/.npm-packages/bin/yarn coverage
yarn run v1.13.0
$ nyc --reporter=lcov --reporter=text-summary /home/quentin/.npm-packages/bin/yarn test
$ mocha "packages/**/src/**/*.spec{,.node}.js" --exit --require ./config/tests/babel.setup.js --require ./config/tests/spec.setup.js --recursive --full-trace --trace-warnings --reporter=spec

...

  111 passing (303ms)


=============================== Coverage summary ===============================
Statements   : 53.03% ( 184/347 )
Branches     : 64.94% ( 50/77 )
Functions    : 41.84% ( 59/141 )
Lines        : 53.53% ( 167/312 )
================================================================================

@morris
Copy link

morris commented Jan 3, 2019

I'm currently seeing something the other way around: Coverage at 0% when I run "nyc mocha test" but correct coverage when I run the script via npm (npm test where test is "nyc mocha test" in the package.json). nyc @ 13.1.0 in both cases. Interestingly, npm ls -g lists nyc as a dependency of npm?!

Node.js 8.15.0, npm 6.4.1.

Here's my npm ls (in my package) output:

npm ls
+-- mocha@5.2.0
| +-- browser-stdout@1.3.1
| +-- commander@2.15.1
| +-- debug@3.1.0
| | `-- ms@2.0.0 deduped
| +-- diff@3.5.0
| +-- escape-string-regexp@1.0.5
| +-- glob@7.1.2
| | +-- fs.realpath@1.0.0 deduped
| | +-- inflight@1.0.6 deduped
| | +-- inherits@2.0.3 deduped
| | +-- minimatch@3.0.4 deduped
| | +-- once@1.4.0 deduped
| | `-- path-is-absolute@1.0.1 deduped
| +-- growl@1.10.5
| +-- he@1.1.1
| +-- minimatch@3.0.4 deduped
| +-- mkdirp@0.5.1 deduped
| `-- supports-color@5.4.0
|   `-- has-flag@3.0.0
+-- nyc@13.1.0
| +-- archy@1.0.0
| +-- arrify@1.0.1
| +-- caching-transform@2.0.0
| | +-- make-dir@1.3.0 deduped
| | +-- md5-hex@2.0.0
| | | `-- md5-o-matic@0.1.1
| | +-- package-hash@2.0.0
| | | +-- graceful-fs@4.1.11
| | | +-- lodash.flattendeep@4.4.0
| | | +-- md5-hex@2.0.0 deduped
| | | `-- release-zalgo@1.0.0
| | |   `-- es6-error@4.1.1
| | `-- write-file-atomic@2.3.0
| |   +-- graceful-fs@4.1.11 deduped
| |   +-- imurmurhash@0.1.4
| |   `-- signal-exit@3.0.2 deduped
| +-- convert-source-map@1.6.0
| | `-- safe-buffer@5.1.2
| +-- debug-log@1.0.1
| +-- find-cache-dir@2.0.0
| | +-- commondir@1.0.1
| | +-- make-dir@1.3.0 deduped
| | `-- pkg-dir@3.0.0
| |   `-- find-up@3.0.0 deduped
| +-- find-up@3.0.0
| | `-- locate-path@3.0.0
| |   +-- p-locate@3.0.0
| |   | `-- p-limit@2.0.0
| |   |   `-- p-try@2.0.0
| |   `-- path-exists@3.0.0
| +-- foreground-child@1.5.6
| | +-- cross-spawn@4.0.2
| | | +-- lru-cache@4.1.3
| | | | +-- pseudomap@1.0.2
| | | | `-- yallist@2.1.2
| | | `-- which@1.3.1 deduped
| | `-- signal-exit@3.0.2 deduped
| +-- glob@7.1.3
| | +-- fs.realpath@1.0.0
| | +-- inflight@1.0.6
| | | +-- once@1.4.0 deduped
| | | `-- wrappy@1.0.2
| | +-- inherits@2.0.3
| | +-- minimatch@3.0.4
| | | `-- brace-expansion@1.1.11
| | |   +-- balanced-match@1.0.0
| | |   `-- concat-map@0.0.1
| | +-- once@1.4.0
| | | `-- wrappy@1.0.2 deduped
| | `-- path-is-absolute@1.0.1
| +-- istanbul-lib-coverage@2.0.1
| +-- istanbul-lib-hook@2.0.1
| | `-- append-transform@1.0.0
| |   `-- default-require-extensions@2.0.0
| |     `-- strip-bom@3.0.0
| +-- istanbul-lib-instrument@3.0.0
| | +-- @babel/generator@7.2.2
| | | +-- @babel/types@7.2.2 deduped
| | | +-- jsesc@2.5.2
| | | +-- lodash@4.17.11 deduped
| | | +-- source-map@0.5.7
| | | `-- trim-right@1.0.1
| | +-- @babel/parser@7.2.3 deduped
| | +-- @babel/template@7.2.2
| | | +-- @babel/code-frame@7.0.0 deduped
| | | +-- @babel/parser@7.2.3 deduped
| | | `-- @babel/types@7.2.2 deduped
| | +-- @babel/traverse@7.2.3 deduped
| | +-- @babel/types@7.2.2 deduped
| | +-- istanbul-lib-coverage@2.0.1
| | `-- semver@5.6.0 deduped
| +-- istanbul-lib-report@2.0.2
| | +-- istanbul-lib-coverage@2.0.1 deduped
| | +-- make-dir@1.3.0 deduped
| | `-- supports-color@5.4.0
| |   `-- has-flag@3.0.0
| +-- istanbul-lib-source-maps@2.0.1
| | +-- debug@3.1.0
| | | `-- ms@2.0.0
| | +-- istanbul-lib-coverage@2.0.1 deduped
| | +-- make-dir@1.3.0 deduped
| | +-- rimraf@2.6.2 deduped
| | `-- source-map@0.6.1
| +-- istanbul-reports@2.0.1
| | `-- handlebars@4.0.11
| |   +-- async@1.5.2
| |   +-- optimist@0.6.1
| |   | +-- minimist@0.0.10
| |   | `-- wordwrap@0.0.3
| |   +-- source-map@0.4.4
| |   | `-- amdefine@1.0.1
| |   `-- uglify-js@2.8.29
| |     +-- source-map@0.5.7
| |     +-- uglify-to-browserify@1.0.2
| |     `-- yargs@3.10.0
| |       +-- camelcase@1.2.1
| |       +-- cliui@2.1.0
| |       | +-- center-align@0.1.3
| |       | | +-- align-text@0.1.4
| |       | | | +-- kind-of@3.2.2
| |       | | | | `-- is-buffer@1.1.6
| |       | | | +-- longest@1.0.1
| |       | | | `-- repeat-string@1.6.1
| |       | | `-- lazy-cache@1.0.4
| |       | +-- right-align@0.1.3
| |       | | `-- align-text@0.1.4 deduped
| |       | `-- wordwrap@0.0.2
| |       +-- decamelize@1.2.0 deduped
| |       `-- window-size@0.1.0
| +-- make-dir@1.3.0
| | `-- pify@3.0.0
| +-- merge-source-map@1.1.0
| | `-- source-map@0.6.1
| +-- resolve-from@4.0.0
| +-- rimraf@2.6.2
| | `-- glob@7.1.3 deduped
| +-- signal-exit@3.0.2
| +-- spawn-wrap@1.4.2
| | +-- foreground-child@1.5.6 deduped
| | +-- mkdirp@0.5.1
| | | `-- minimist@0.0.8
| | +-- os-homedir@1.0.2
| | +-- rimraf@2.6.2 deduped
| | +-- signal-exit@3.0.2 deduped
| | `-- which@1.3.1
| |   `-- isexe@2.0.0
| +-- test-exclude@5.0.0
| | +-- arrify@1.0.1 deduped
| | +-- minimatch@3.0.4 deduped
| | +-- read-pkg-up@4.0.0
| | | +-- find-up@3.0.0 deduped
| | | `-- read-pkg@3.0.0
| | |   +-- load-json-file@4.0.0
| | |   | +-- graceful-fs@4.1.11 deduped
| | |   | +-- parse-json@4.0.0
| | |   | | +-- error-ex@1.3.2
| | |   | | | `-- is-arrayish@0.2.1
| | |   | | `-- json-parse-better-errors@1.0.2
| | |   | +-- pify@3.0.0 deduped
| | |   | `-- strip-bom@3.0.0 deduped
| | |   +-- normalize-package-data@2.4.0
| | |   | +-- hosted-git-info@2.7.1
| | |   | +-- is-builtin-module@1.0.0
| | |   | | `-- builtin-modules@1.1.1
| | |   | +-- semver@5.5.0
| | |   | `-- validate-npm-package-license@3.0.3
| | |   |   +-- spdx-correct@3.0.0
| | |   |   | +-- spdx-expression-parse@3.0.0 deduped
| | |   |   | `-- spdx-license-ids@3.0.0
| | |   |   `-- spdx-expression-parse@3.0.0
| | |   |     +-- spdx-exceptions@2.1.0
| | |   |     `-- spdx-license-ids@3.0.0 deduped
| | |   `-- path-type@3.0.0
| | |     `-- pify@3.0.0 deduped
| | `-- require-main-filename@1.0.1
| +-- uuid@3.3.2
| +-- yargs@11.1.0
| | +-- cliui@4.1.0
| | | +-- string-width@2.1.1 deduped
| | | +-- strip-ansi@4.0.0 deduped
| | | `-- wrap-ansi@2.1.0
| | |   +-- string-width@1.0.2
| | |   | +-- code-point-at@1.1.0
| | |   | +-- is-fullwidth-code-point@1.0.0
| | |   | | `-- number-is-nan@1.0.1
| | |   | `-- strip-ansi@3.0.1 deduped
| | |   `-- strip-ansi@3.0.1
| | |     `-- ansi-regex@2.1.1
| | +-- decamelize@1.2.0
| | +-- find-up@2.1.0
| | | `-- locate-path@2.0.0
| | |   +-- p-locate@2.0.0
| | |   | `-- p-limit@1.3.0
| | |   |   `-- p-try@1.0.0
| | |   `-- path-exists@3.0.0 deduped
| | +-- get-caller-file@1.0.3
| | +-- os-locale@2.1.0
| | | +-- execa@0.7.0
| | | | +-- cross-spawn@5.1.0
| | | | | +-- lru-cache@4.1.3 deduped
| | | | | +-- shebang-command@1.2.0
| | | | | | `-- shebang-regex@1.0.0
| | | | | `-- which@1.3.1 deduped
| | | | +-- get-stream@3.0.0
| | | | +-- is-stream@1.1.0
| | | | +-- npm-run-path@2.0.2
| | | | | `-- path-key@2.0.1
| | | | +-- p-finally@1.0.0
| | | | +-- signal-exit@3.0.2 deduped
| | | | `-- strip-eof@1.0.0
| | | +-- lcid@1.0.0
| | | | `-- invert-kv@1.0.0
| | | `-- mem@1.1.0
| | |   `-- mimic-fn@1.2.0
| | +-- require-directory@2.1.1
| | +-- require-main-filename@1.0.1 deduped
| | +-- set-blocking@2.0.0
| | +-- string-width@2.1.1
| | | +-- is-fullwidth-code-point@2.0.0
| | | `-- strip-ansi@4.0.0
| | |   `-- ansi-regex@3.0.0
| | +-- which-module@2.0.0
| | +-- y18n@3.2.1
| | `-- yargs-parser@9.0.2 deduped
| `-- yargs-parser@9.0.2
|   `-- camelcase@4.1.0
and here's npm ls -g:
+-- mocha@5.2.0
| +-- browser-stdout@1.3.1
| +-- commander@2.15.1
| +-- debug@3.1.0
| | `-- ms@2.0.0
| +-- diff@3.5.0
| +-- escape-string-regexp@1.0.5
| +-- glob@7.1.2
| | +-- fs.realpath@1.0.0
| | +-- inflight@1.0.6
| | | +-- once@1.4.0 deduped
| | | `-- wrappy@1.0.2
| | +-- inherits@2.0.3
| | +-- minimatch@3.0.4 deduped
| | +-- once@1.4.0
| | | `-- wrappy@1.0.2 deduped
| | `-- path-is-absolute@1.0.1
| +-- growl@1.10.5
| +-- he@1.1.1
| +-- minimatch@3.0.4
| | `-- brace-expansion@1.1.11
| |   +-- balanced-match@1.0.0
| |   `-- concat-map@0.0.1
| +-- mkdirp@0.5.1
| | `-- minimist@0.0.8
| `-- supports-color@5.4.0
|   `-- has-flag@3.0.0
+-- npm@6.4.1
| +-- @types/request@2.47.1
| | +-- @types/caseless@0.12.1
| | +-- @types/form-data@2.2.1
| | | `-- @types/node@10.7.0 deduped
| | +-- @types/node@10.7.0
| | `-- @types/tough-cookie@2.3.3
| +-- abbrev@1.1.1
| +-- ansicolors@0.3.2
| +-- ansistyles@0.1.3
| +-- aproba@1.2.0
| +-- archy@1.0.0
| +-- bin-links@1.1.2
| | +-- bluebird@3.5.1 deduped
| | +-- cmd-shim@2.0.2 deduped
| | +-- gentle-fs@2.0.1 deduped
| | +-- graceful-fs@4.1.11 deduped
| | `-- write-file-atomic@2.3.0 deduped
| +-- bluebird@3.5.1
| +-- byte-size@4.0.3
| +-- cacache@11.2.0
| | +-- bluebird@3.5.1 deduped
| | +-- chownr@1.0.1 deduped
| | +-- figgy-pudding@3.4.1 deduped
| | +-- glob@7.1.2 deduped
| | +-- graceful-fs@4.1.11 deduped
| | +-- lru-cache@4.1.3 deduped
| | +-- mississippi@3.0.0 deduped
| | +-- mkdirp@0.5.1 deduped
| | +-- move-concurrently@1.0.1 deduped
| | +-- promise-inflight@1.0.1 deduped
| | +-- rimraf@2.6.2 deduped
| | +-- ssri@6.0.0 deduped
| | +-- unique-filename@1.1.0 deduped
| | `-- y18n@4.0.0
| +-- call-limit@1.1.0
| +-- chownr@1.0.1
| +-- ci-info@1.4.0
| +-- cli-columns@3.1.2
| | +-- string-width@2.1.1
| | | +-- is-fullwidth-code-point@2.0.0
| | | `-- strip-ansi@4.0.0
| | |   `-- ansi-regex@3.0.0
| | `-- strip-ansi@3.0.1
| |   `-- ansi-regex@2.1.1
| +-- cli-table3@0.5.0
| | +-- colors@1.1.2
| | +-- object-assign@4.1.1
| | `-- string-width@2.1.1 deduped
| +-- cmd-shim@2.0.2
| | +-- graceful-fs@4.1.11 deduped
| | `-- mkdirp@0.5.1 deduped
| +-- columnify@1.5.4
| | +-- strip-ansi@3.0.1 deduped
| | `-- wcwidth@1.0.1
| |   `-- defaults@1.0.3
| |     `-- clone@1.0.4
| +-- config-chain@1.1.11
| | +-- ini@1.3.5 deduped
| | `-- proto-list@1.2.4
| +-- debuglog@1.0.1
| +-- detect-indent@5.0.0
| +-- detect-newline@2.1.0
| +-- dezalgo@1.0.3
| | +-- asap@2.0.6
| | `-- wrappy@1.0.2
| +-- editor@1.0.0
| +-- figgy-pudding@3.4.1
| +-- find-npm-prefix@1.0.2
| +-- fs-vacuum@1.2.10
| | +-- graceful-fs@4.1.11 deduped
| | +-- path-is-inside@1.0.2 deduped
| | `-- rimraf@2.6.2 deduped
| +-- fs-write-stream-atomic@1.0.10
| | +-- graceful-fs@4.1.11 deduped
| | +-- iferr@0.1.5
| | +-- imurmurhash@0.1.4 deduped
| | `-- readable-stream@2.3.6 deduped
| +-- gentle-fs@2.0.1
| | +-- aproba@1.2.0 deduped
| | +-- fs-vacuum@1.2.10 deduped
| | +-- graceful-fs@4.1.11 deduped
| | +-- iferr@0.1.5
| | +-- mkdirp@0.5.1 deduped
| | +-- path-is-inside@1.0.2 deduped
| | +-- read-cmd-shim@1.0.1 deduped
| | `-- slide@1.1.6 deduped
| +-- glob@7.1.2
| | +-- fs.realpath@1.0.0
| | +-- inflight@1.0.6 deduped
| | +-- inherits@2.0.3 deduped
| | +-- minimatch@3.0.4
| | | `-- brace-expansion@1.1.11
| | |   +-- balanced-match@1.0.0
| | |   `-- concat-map@0.0.1
| | +-- once@1.4.0 deduped
| | `-- path-is-absolute@1.0.1
| +-- graceful-fs@4.1.11
| +-- has-unicode@2.0.1
| +-- hosted-git-info@2.7.1
| +-- iferr@1.0.2
| +-- imurmurhash@0.1.4
| +-- inflight@1.0.6
| | +-- once@1.4.0 deduped
| | `-- wrappy@1.0.2 deduped
| +-- inherits@2.0.3
| +-- ini@1.3.5
| +-- init-package-json@1.10.3
| | +-- glob@7.1.2 deduped
| | +-- npm-package-arg@6.1.0 deduped
| | +-- promzard@0.3.0
| | | `-- read@1.0.7 deduped
| | +-- read@1.0.7 deduped
| | +-- read-package-json@2.0.13 deduped
| | +-- semver@5.5.0 deduped
| | +-- validate-npm-package-license@3.0.4 deduped
| | `-- validate-npm-package-name@3.0.0 deduped
| +-- is-cidr@2.0.6
| | `-- cidr-regex@2.0.9
| |   `-- ip-regex@2.1.0
| +-- json-parse-better-errors@1.0.2
| +-- JSONStream@1.3.4
| | +-- jsonparse@1.3.1
| | `-- through@2.3.8
| +-- lazy-property@1.0.0
| +-- libcipm@2.0.2
| | +-- bin-links@1.1.2 deduped
| | +-- bluebird@3.5.1 deduped
| | +-- find-npm-prefix@1.0.2 deduped
| | +-- graceful-fs@4.1.11 deduped
| | +-- lock-verify@2.0.2 deduped
| | +-- mkdirp@0.5.1 deduped
| | +-- npm-lifecycle@2.1.0 deduped
| | +-- npm-logical-tree@1.2.1
| | +-- npm-package-arg@6.1.0 deduped
| | +-- pacote@8.1.6 deduped
| | +-- protoduck@5.0.0
| | | `-- genfun@4.0.1
| | +-- read-package-json@2.0.13 deduped
| | +-- rimraf@2.6.2 deduped
| | `-- worker-farm@1.6.0 deduped
| +-- libnpmhook@4.0.1
| | +-- figgy-pudding@3.4.1 deduped
| | `-- npm-registry-fetch@3.1.1
| |   +-- bluebird@3.5.1 deduped
| |   +-- figgy-pudding@3.4.1 deduped
| |   +-- lru-cache@4.1.3 deduped
| |   +-- make-fetch-happen@4.0.1 deduped
| |   `-- npm-package-arg@6.1.0 deduped
| +-- libnpx@10.2.0
| | +-- dotenv@5.0.1
| | +-- npm-package-arg@6.1.0 deduped
| | +-- rimraf@2.6.2 deduped
| | +-- safe-buffer@5.1.2 deduped
| | +-- update-notifier@2.5.0 deduped
| | +-- which@1.3.1 deduped
| | +-- y18n@4.0.0 deduped
| | `-- yargs@11.0.0
| |   +-- cliui@4.1.0
| |   | +-- string-width@2.1.1 deduped
| |   | +-- strip-ansi@4.0.0
| |   | | `-- ansi-regex@3.0.0
| |   | `-- wrap-ansi@2.1.0
| |   |   +-- string-width@1.0.2
| |   |   | +-- code-point-at@1.1.0 deduped
| |   |   | +-- is-fullwidth-code-point@1.0.0 deduped
| |   |   | `-- strip-ansi@3.0.1 deduped
| |   |   `-- strip-ansi@3.0.1 deduped
| |   +-- decamelize@1.2.0
| |   +-- find-up@2.1.0
| |   | `-- locate-path@2.0.0
| |   |   +-- p-locate@2.0.0
| |   |   | `-- p-limit@1.2.0
| |   |   |   `-- p-try@1.0.0
| |   |   `-- path-exists@3.0.0
| |   +-- get-caller-file@1.0.2
| |   +-- os-locale@2.1.0
| |   | +-- execa@0.7.0
| |   | | +-- cross-spawn@5.1.0
| |   | | | +-- lru-cache@4.1.3 deduped
| |   | | | +-- shebang-command@1.2.0
| |   | | | | `-- shebang-regex@1.0.0
| |   | | | `-- which@1.3.1 deduped
| |   | | +-- get-stream@3.0.0 deduped
| |   | | +-- is-stream@1.1.0
| |   | | +-- npm-run-path@2.0.2
| |   | | | `-- path-key@2.0.1
| |   | | +-- p-finally@1.0.0
| |   | | +-- signal-exit@3.0.2 deduped
| |   | | `-- strip-eof@1.0.0
| |   | +-- lcid@1.0.0
| |   | | `-- invert-kv@1.0.0
| |   | `-- mem@1.1.0
| |   |   `-- mimic-fn@1.2.0
| |   +-- require-directory@2.1.1
| |   +-- require-main-filename@1.0.1
| |   +-- set-blocking@2.0.0 deduped
| |   +-- string-width@2.1.1 deduped
| |   +-- which-module@2.0.0
| |   +-- y18n@3.2.1
| |   `-- yargs-parser@9.0.2
| |     `-- camelcase@4.1.0 deduped
| +-- lock-verify@2.0.2
| | +-- npm-package-arg@6.1.0 deduped
| | `-- semver@5.5.0 deduped
| +-- lockfile@1.0.4
| | `-- signal-exit@3.0.2
| +-- lodash._baseindexof@3.1.0
| +-- lodash._baseuniq@4.6.0
| | +-- lodash._createset@4.0.3
| | `-- lodash._root@3.0.1
| +-- lodash._bindcallback@3.0.1
| +-- lodash._cacheindexof@3.0.2
| +-- lodash._createcache@3.1.2
| | `-- lodash._getnative@3.9.1 deduped
| +-- lodash._getnative@3.9.1
| +-- lodash.clonedeep@4.5.0
| +-- lodash.restparam@3.6.1
| +-- lodash.union@4.6.0
| +-- lodash.uniq@4.5.0
| +-- lodash.without@4.4.0
| +-- lru-cache@4.1.3
| | +-- pseudomap@1.0.2
| | `-- yallist@2.1.2
| +-- meant@1.0.1
| +-- mississippi@3.0.0
| | +-- concat-stream@1.6.2
| | | +-- buffer-from@1.0.0
| | | +-- inherits@2.0.3 deduped
| | | +-- readable-stream@2.3.6 deduped
| | | `-- typedarray@0.0.6
| | +-- duplexify@3.6.0
| | | +-- end-of-stream@1.4.1 deduped
| | | +-- inherits@2.0.3 deduped
| | | +-- readable-stream@2.3.6 deduped
| | | `-- stream-shift@1.0.0
| | +-- end-of-stream@1.4.1
| | | `-- once@1.4.0 deduped
| | +-- flush-write-stream@1.0.3
| | | +-- inherits@2.0.3 deduped
| | | `-- readable-stream@2.3.6 deduped
| | +-- from2@2.3.0
| | | +-- inherits@2.0.3 deduped
| | | `-- readable-stream@2.3.6 deduped
| | +-- parallel-transform@1.1.0
| | | +-- cyclist@0.2.2
| | | +-- inherits@2.0.3 deduped
| | | `-- readable-stream@2.3.6 deduped
| | +-- pump@3.0.0
| | | +-- end-of-stream@1.4.1 deduped
| | | `-- once@1.4.0 deduped
| | +-- pumpify@1.5.1
| | | +-- duplexify@3.6.0 deduped
| | | +-- inherits@2.0.3 deduped
| | | `-- pump@2.0.1
| | |   +-- end-of-stream@1.4.1 deduped
| | |   `-- once@1.4.0 deduped
| | +-- stream-each@1.2.2
| | | +-- end-of-stream@1.4.1 deduped
| | | `-- stream-shift@1.0.0 deduped
| | `-- through2@2.0.3
| |   +-- readable-stream@2.3.6 deduped
| |   `-- xtend@4.0.1
| +-- mkdirp@0.5.1
| | `-- minimist@0.0.8
| +-- move-concurrently@1.0.1
| | +-- aproba@1.2.0 deduped
| | +-- copy-concurrently@1.0.5
| | | +-- aproba@1.2.0 deduped
| | | +-- fs-write-stream-atomic@1.0.10 deduped
| | | +-- iferr@0.1.5
| | | +-- mkdirp@0.5.1 deduped
| | | +-- rimraf@2.6.2 deduped
| | | `-- run-queue@1.0.3 deduped
| | +-- fs-write-stream-atomic@1.0.10 deduped
| | +-- mkdirp@0.5.1 deduped
| | +-- rimraf@2.6.2 deduped
| | `-- run-queue@1.0.3
| |   `-- aproba@1.2.0 deduped
| +-- node-gyp@3.8.0
| | +-- fstream@1.0.11
| | | +-- graceful-fs@4.1.11 deduped
| | | +-- inherits@2.0.3 deduped
| | | +-- mkdirp@0.5.1 deduped
| | | `-- rimraf@2.6.2 deduped
| | +-- glob@7.1.2 deduped
| | +-- graceful-fs@4.1.11 deduped
| | +-- mkdirp@0.5.1 deduped
| | +-- nopt@3.0.6
| | | `-- abbrev@1.1.1 deduped
| | +-- npmlog@4.1.2 deduped
| | +-- osenv@0.1.5 deduped
| | +-- request@2.88.0 deduped
| | +-- rimraf@2.6.2 deduped
| | +-- semver@5.3.0
| | +-- tar@2.2.1
| | | +-- block-stream@0.0.9
| | | | `-- inherits@2.0.3 deduped
| | | +-- fstream@1.0.11 deduped
| | | `-- inherits@2.0.3 deduped
| | `-- which@1.3.1 deduped
| +-- nopt@4.0.1
| | +-- abbrev@1.1.1 deduped
| | `-- osenv@0.1.5 deduped
| +-- normalize-package-data@2.4.0
| | +-- hosted-git-info@2.7.1 deduped
| | +-- is-builtin-module@1.0.0
| | | `-- builtin-modules@1.1.1
| | +-- semver@5.5.0 deduped
| | `-- validate-npm-package-license@3.0.4 deduped
| +-- npm-audit-report@1.3.1
| | +-- cli-table3@0.5.0 deduped
| | `-- console-control-strings@1.1.0
| +-- npm-cache-filename@1.0.2
| +-- npm-install-checks@3.0.0
| | `-- semver@5.5.0 deduped
| +-- npm-lifecycle@2.1.0
| | +-- byline@5.0.0
| | +-- graceful-fs@4.1.11 deduped
| | +-- node-gyp@3.8.0 deduped
| | +-- resolve-from@4.0.0
| | +-- slide@1.1.6 deduped
| | +-- uid-number@0.0.6 deduped
| | +-- umask@1.1.0 deduped
| | `-- which@1.3.1 deduped
| +-- npm-package-arg@6.1.0
| | +-- hosted-git-info@2.7.1 deduped
| | +-- osenv@0.1.5 deduped
| | +-- semver@5.5.0 deduped
| | `-- validate-npm-package-name@3.0.0 deduped
| +-- npm-packlist@1.1.11
| | +-- ignore-walk@3.0.1
| | | `-- minimatch@3.0.4 deduped
| | `-- npm-bundled@1.0.5
| +-- npm-pick-manifest@2.1.0
| | +-- npm-package-arg@6.1.0 deduped
| | `-- semver@5.5.0 deduped
| +-- npm-profile@3.0.2
| | +-- aproba@1.2.0 deduped
| | `-- make-fetch-happen@4.0.1
| |   +-- agentkeepalive@3.4.1
| |   | `-- humanize-ms@1.2.1
| |   |   `-- ms@2.1.1
| |   +-- cacache@11.2.0 deduped
| |   +-- http-cache-semantics@3.8.1
| |   +-- http-proxy-agent@2.1.0
| |   | +-- agent-base@4.2.0
| |   | | `-- es6-promisify@5.0.0
| |   | |   `-- es6-promise@4.2.4
| |   | `-- debug@3.1.0
| |   |   `-- ms@2.0.0
| |   +-- https-proxy-agent@2.2.1
| |   | +-- agent-base@4.2.0 deduped
| |   | `-- debug@3.1.0 deduped
| |   +-- lru-cache@4.1.3 deduped
| |   +-- mississippi@3.0.0 deduped
| |   +-- node-fetch-npm@2.0.2
| |   | +-- encoding@0.1.12
| |   | | `-- iconv-lite@0.4.23
| |   | |   `-- safer-buffer@2.1.2 deduped
| |   | +-- json-parse-better-errors@1.0.2 deduped
| |   | `-- safe-buffer@5.1.2 deduped
| |   +-- promise-retry@1.1.1 deduped
| |   +-- socks-proxy-agent@4.0.1
| |   | +-- agent-base@4.2.0 deduped
| |   | `-- socks@2.2.0
| |   |   +-- ip@1.1.5
| |   |   `-- smart-buffer@4.0.1
| |   `-- ssri@6.0.0 deduped
| +-- npm-registry-client@8.6.0
| | +-- concat-stream@1.6.2 deduped
| | +-- graceful-fs@4.1.11 deduped
| | +-- normalize-package-data@2.4.0 deduped
| | +-- npm-package-arg@6.1.0 deduped
| | +-- npmlog@4.1.2 deduped
| | +-- once@1.4.0 deduped
| | +-- request@2.88.0 deduped
| | +-- retry@0.10.1
| | +-- safe-buffer@5.1.2 deduped
| | +-- semver@5.5.0 deduped
| | +-- slide@1.1.6 deduped
| | `-- ssri@5.3.0
| |   `-- safe-buffer@5.1.2 deduped
| +-- npm-registry-fetch@1.1.0
| | +-- bluebird@3.5.1 deduped
| | +-- figgy-pudding@2.0.1
| | +-- lru-cache@4.1.3 deduped
| | +-- make-fetch-happen@3.0.0
| | | +-- agentkeepalive@3.4.1 deduped
| | | +-- cacache@10.0.4
| | | | +-- bluebird@3.5.1 deduped
| | | | +-- chownr@1.0.1 deduped
| | | | +-- glob@7.1.2 deduped
| | | | +-- graceful-fs@4.1.11 deduped
| | | | +-- lru-cache@4.1.3 deduped
| | | | +-- mississippi@2.0.0
| | | | | +-- concat-stream@1.6.2 deduped
| | | | | +-- duplexify@3.6.0 deduped
| | | | | +-- end-of-stream@1.4.1 deduped
| | | | | +-- flush-write-stream@1.0.3 deduped
| | | | | +-- from2@2.3.0 deduped
| | | | | +-- parallel-transform@1.1.0 deduped
| | | | | +-- pump@2.0.1
| | | | | | +-- end-of-stream@1.4.1 deduped
| | | | | | `-- once@1.4.0 deduped
| | | | | +-- pumpify@1.5.1 deduped
| | | | | +-- stream-each@1.2.2 deduped
| | | | | `-- through2@2.0.3 deduped
| | | | +-- mkdirp@0.5.1 deduped
| | | | +-- move-concurrently@1.0.1 deduped
| | | | +-- promise-inflight@1.0.1 deduped
| | | | +-- rimraf@2.6.2 deduped
| | | | +-- ssri@5.3.0 deduped
| | | | +-- unique-filename@1.1.0 deduped
| | | | `-- y18n@4.0.0 deduped
| | | +-- http-cache-semantics@3.8.1 deduped
| | | +-- http-proxy-agent@2.1.0 deduped
| | | +-- https-proxy-agent@2.2.1 deduped
| | | +-- lru-cache@4.1.3 deduped
| | | +-- mississippi@3.0.0 deduped
| | | +-- node-fetch-npm@2.0.2 deduped
| | | +-- promise-retry@1.1.1 deduped
| | | +-- socks-proxy-agent@3.0.1
| | | | +-- agent-base@4.2.0 deduped
| | | | `-- socks@1.1.10
| | | |   +-- ip@1.1.5 deduped
| | | |   `-- smart-buffer@1.1.15
| | | `-- ssri@5.3.0
| | |   `-- safe-buffer@5.1.2 deduped
| | +-- npm-package-arg@6.1.0 deduped
| | `-- safe-buffer@5.1.2 deduped
| +-- npm-user-validate@1.0.0
| +-- npmlog@4.1.2
| | +-- are-we-there-yet@1.1.4
| | | +-- delegates@1.0.0
| | | `-- readable-stream@2.3.6 deduped
| | +-- console-control-strings@1.1.0 deduped
| | +-- gauge@2.7.4
| | | +-- aproba@1.2.0 deduped
| | | +-- console-control-strings@1.1.0 deduped
| | | +-- has-unicode@2.0.1 deduped
| | | +-- object-assign@4.1.1 deduped
| | | +-- signal-exit@3.0.2 deduped
| | | +-- string-width@1.0.2
| | | | +-- code-point-at@1.1.0
| | | | +-- is-fullwidth-code-point@1.0.0
| | | | | `-- number-is-nan@1.0.1
| | | | `-- strip-ansi@3.0.1 deduped
| | | +-- strip-ansi@3.0.1 deduped
| | | `-- wide-align@1.1.2
| | |   `-- string-width@1.0.2
| | |     +-- code-point-at@1.1.0 deduped
| | |     +-- is-fullwidth-code-point@1.0.0 deduped
| | |     `-- strip-ansi@3.0.1 deduped
| | `-- set-blocking@2.0.0
| +-- once@1.4.0
| | `-- wrappy@1.0.2 deduped
| +-- opener@1.5.0
| +-- osenv@0.1.5
| | +-- os-homedir@1.0.2
| | `-- os-tmpdir@1.0.2
| +-- pacote@8.1.6
| | +-- bluebird@3.5.1 deduped
| | +-- cacache@11.2.0 deduped
| | +-- get-stream@3.0.0
| | +-- glob@7.1.2 deduped
| | +-- lru-cache@4.1.3 deduped
| | +-- make-fetch-happen@4.0.1 deduped
| | +-- minimatch@3.0.4 deduped
| | +-- minipass@2.3.3
| | | +-- safe-buffer@5.1.2 deduped
| | | `-- yallist@3.0.2
| | +-- mississippi@3.0.0 deduped
| | +-- mkdirp@0.5.1 deduped
| | +-- normalize-package-data@2.4.0 deduped
| | +-- npm-package-arg@6.1.0 deduped
| | +-- npm-packlist@1.1.11 deduped
| | +-- npm-pick-manifest@2.1.0 deduped
| | +-- osenv@0.1.5 deduped
| | +-- promise-inflight@1.0.1 deduped
| | +-- promise-retry@1.1.1
| | | +-- err-code@1.1.2
| | | `-- retry@0.10.1
| | +-- protoduck@5.0.0 deduped
| | +-- rimraf@2.6.2 deduped
| | +-- safe-buffer@5.1.2 deduped
| | +-- semver@5.5.0 deduped
| | +-- ssri@6.0.0 deduped
| | +-- tar@4.4.6 deduped
| | +-- unique-filename@1.1.0 deduped
| | `-- which@1.3.1 deduped
| +-- path-is-inside@1.0.2
| +-- promise-inflight@1.0.1
| +-- qrcode-terminal@0.12.0
| +-- query-string@6.1.0
| | +-- decode-uri-component@0.2.0
| | `-- strict-uri-encode@2.0.0
| +-- qw@1.0.1
| +-- read@1.0.7
| | `-- mute-stream@0.0.7
| +-- read-cmd-shim@1.0.1
| | `-- graceful-fs@4.1.11 deduped
| +-- read-installed@4.0.3
| | +-- debuglog@1.0.1 deduped
| | +-- graceful-fs@4.1.11 deduped
| | +-- read-package-json@2.0.13 deduped
| | +-- readdir-scoped-modules@1.0.2 deduped
| | +-- semver@5.5.0 deduped
| | +-- slide@1.1.6 deduped
| | `-- util-extend@1.0.3
| +-- read-package-json@2.0.13
| | +-- glob@7.1.2 deduped
| | +-- graceful-fs@4.1.11 deduped
| | +-- json-parse-better-errors@1.0.2 deduped
| | +-- normalize-package-data@2.4.0 deduped
| | `-- slash@1.0.0
| +-- read-package-tree@5.2.1
| | +-- debuglog@1.0.1 deduped
| | +-- dezalgo@1.0.3 deduped
| | +-- once@1.4.0 deduped
| | +-- read-package-json@2.0.13 deduped
| | `-- readdir-scoped-modules@1.0.2 deduped
| +-- readable-stream@2.3.6
| | +-- core-util-is@1.0.2
| | +-- inherits@2.0.3 deduped
| | +-- isarray@1.0.0
| | +-- process-nextick-args@2.0.0
| | +-- safe-buffer@5.1.2 deduped
| | +-- string_decoder@1.1.1
| | | `-- safe-buffer@5.1.2 deduped
| | `-- util-deprecate@1.0.2
| +-- readdir-scoped-modules@1.0.2
| | +-- debuglog@1.0.1 deduped
| | +-- dezalgo@1.0.3 deduped
| | +-- graceful-fs@4.1.11 deduped
| | `-- once@1.4.0 deduped
| +-- request@2.88.0
| | +-- aws-sign2@0.7.0
| | +-- aws4@1.8.0
| | +-- caseless@0.12.0
| | +-- combined-stream@1.0.6
| | | `-- delayed-stream@1.0.0
| | +-- extend@3.0.2
| | +-- forever-agent@0.6.1
| | +-- form-data@2.3.2
| | | +-- asynckit@0.4.0
| | | +-- combined-stream@1.0.6 deduped
| | | `-- mime-types@2.1.19 deduped
| | +-- har-validator@5.1.0
| | | +-- ajv@5.5.2
| | | | +-- co@4.6.0
| | | | +-- fast-deep-equal@1.1.0
| | | | +-- fast-json-stable-stringify@2.0.0
| | | | `-- json-schema-traverse@0.3.1
| | | `-- har-schema@2.0.0
| | +-- http-signature@1.2.0
| | | +-- assert-plus@1.0.0
| | | +-- jsprim@1.4.1
| | | | +-- assert-plus@1.0.0 deduped
| | | | +-- extsprintf@1.3.0
| | | | +-- json-schema@0.2.3
| | | | `-- verror@1.10.0
| | | |   +-- assert-plus@1.0.0 deduped
| | | |   +-- core-util-is@1.0.2 deduped
| | | |   `-- extsprintf@1.3.0 deduped
| | | `-- sshpk@1.14.2
| | |   +-- asn1@0.2.4
| | |   | `-- safer-buffer@2.1.2 deduped
| | |   +-- assert-plus@1.0.0 deduped
| | |   +-- bcrypt-pbkdf@1.0.2
| | |   | `-- tweetnacl@0.14.5 deduped
| | |   +-- dashdash@1.14.1
| | |   | `-- assert-plus@1.0.0 deduped
| | |   +-- ecc-jsbn@0.1.2
| | |   | +-- jsbn@0.1.1 deduped
| | |   | `-- safer-buffer@2.1.2 deduped
| | |   +-- getpass@0.1.7
| | |   | `-- assert-plus@1.0.0 deduped
| | |   +-- jsbn@0.1.1
| | |   +-- safer-buffer@2.1.2
| | |   `-- tweetnacl@0.14.5
| | +-- is-typedarray@1.0.0
| | +-- isstream@0.1.2
| | +-- json-stringify-safe@5.0.1
| | +-- mime-types@2.1.19
| | | `-- mime-db@1.35.0
| | +-- oauth-sign@0.9.0
| | +-- performance-now@2.1.0
| | +-- qs@6.5.2
| | +-- safe-buffer@5.1.2 deduped
| | +-- tough-cookie@2.4.3
| | | +-- psl@1.1.29
| | | `-- punycode@1.4.1
| | +-- tunnel-agent@0.6.0
| | | `-- safe-buffer@5.1.2 deduped
| | `-- uuid@3.3.2 deduped
| +-- retry@0.12.0
| +-- rimraf@2.6.2
| | `-- glob@7.1.2 deduped
| +-- safe-buffer@5.1.2
| +-- semver@5.5.0
| +-- sha@2.0.1
| | +-- graceful-fs@4.1.11 deduped
| | `-- readable-stream@2.3.6 deduped
| +-- slide@1.1.6
| +-- sorted-object@2.0.1
| +-- sorted-union-stream@2.1.3
| | +-- from2@1.3.0
| | | +-- inherits@2.0.3 deduped
| | | `-- readable-stream@1.1.14
| | |   +-- core-util-is@1.0.2 deduped
| | |   +-- inherits@2.0.3 deduped
| | |   +-- isarray@0.0.1
| | |   `-- string_decoder@0.10.31
| | `-- stream-iterate@1.2.0
| |   +-- readable-stream@2.3.6 deduped
| |   `-- stream-shift@1.0.0 deduped
| +-- ssri@6.0.0
| +-- stringify-package@1.0.0
| +-- tar@4.4.6
| | +-- chownr@1.0.1 deduped
| | +-- fs-minipass@1.2.5
| | | `-- minipass@2.3.3 deduped
| | +-- minipass@2.3.3 deduped
| | +-- minizlib@1.1.0
| | | `-- minipass@2.3.3 deduped
| | +-- mkdirp@0.5.1 deduped
| | +-- safe-buffer@5.1.2 deduped
| | `-- yallist@3.0.2
| +-- text-table@0.2.0
| +-- tiny-relative-date@1.3.0
| +-- uid-number@0.0.6
| +-- umask@1.1.0
| +-- unique-filename@1.1.0
| | `-- unique-slug@2.0.0
| |   `-- imurmurhash@0.1.4 deduped
| +-- unpipe@1.0.0
| +-- update-notifier@2.5.0
| | +-- boxen@1.3.0
| | | +-- ansi-align@2.0.0
| | | | `-- string-width@2.1.1 deduped
| | | +-- camelcase@4.1.0
| | | +-- chalk@2.4.1 deduped
| | | +-- cli-boxes@1.0.0
| | | +-- string-width@2.1.1 deduped
| | | +-- term-size@1.2.0
| | | | `-- execa@0.7.0 deduped
| | | `-- widest-line@2.0.0
| | |   `-- string-width@2.1.1 deduped
| | +-- chalk@2.4.1
| | | +-- ansi-styles@3.2.1
| | | | `-- color-convert@1.9.1
| | | |   `-- color-name@1.1.3
| | | +-- escape-string-regexp@1.0.5
| | | `-- supports-color@5.4.0
| | |   `-- has-flag@3.0.0
| | +-- configstore@3.1.2
| | | +-- dot-prop@4.2.0
| | | | `-- is-obj@1.0.1
| | | +-- graceful-fs@4.1.11 deduped
| | | +-- make-dir@1.3.0
| | | | `-- pify@3.0.0
| | | +-- unique-string@1.0.0
| | | | `-- crypto-random-string@1.0.0
| | | +-- write-file-atomic@2.3.0 deduped
| | | `-- xdg-basedir@3.0.0 deduped
| | +-- import-lazy@2.1.0
| | +-- is-ci@1.1.0
| | | `-- ci-info@1.4.0 deduped
| | +-- is-installed-globally@0.1.0
| | | +-- global-dirs@0.1.1
| | | | `-- ini@1.3.5 deduped
| | | `-- is-path-inside@1.0.1
| | |   `-- path-is-inside@1.0.2 deduped
| | +-- is-npm@1.0.0
| | +-- latest-version@3.1.0
| | | `-- package-json@4.0.1
| | |   +-- got@6.7.1
| | |   | +-- create-error-class@3.0.2
| | |   | | `-- capture-stack-trace@1.0.0
| | |   | +-- duplexer3@0.1.4
| | |   | +-- get-stream@3.0.0 deduped
| | |   | +-- is-redirect@1.0.0
| | |   | +-- is-retry-allowed@1.1.0
| | |   | +-- is-stream@1.1.0 deduped
| | |   | +-- lowercase-keys@1.0.1
| | |   | +-- safe-buffer@5.1.2 deduped
| | |   | +-- timed-out@4.0.1
| | |   | +-- unzip-response@2.0.1
| | |   | `-- url-parse-lax@1.0.0
| | |   |   `-- prepend-http@1.0.4
| | |   +-- registry-auth-token@3.3.2
| | |   | +-- rc@1.2.7
| | |   | | +-- deep-extend@0.5.1
| | |   | | +-- ini@1.3.5 deduped
| | |   | | +-- minimist@1.2.0
| | |   | | `-- strip-json-comments@2.0.1
| | |   | `-- safe-buffer@5.1.2 deduped
| | |   +-- registry-url@3.1.0
| | |   | `-- rc@1.2.7 deduped
| | |   `-- semver@5.5.0 deduped
| | +-- semver-diff@2.1.0
| | | `-- semver@5.5.0 deduped
| | `-- xdg-basedir@3.0.0
| +-- uuid@3.3.2
| +-- validate-npm-package-license@3.0.4
| | +-- spdx-correct@3.0.0
| | | +-- spdx-expression-parse@3.0.0 deduped
| | | `-- spdx-license-ids@3.0.0
| | `-- spdx-expression-parse@3.0.0
| |   +-- spdx-exceptions@2.1.0
| |   `-- spdx-license-ids@3.0.0 deduped
| +-- validate-npm-package-name@3.0.0
| | `-- builtins@1.0.3
| +-- which@1.3.1
| | `-- isexe@2.0.0
| +-- worker-farm@1.6.0
| | `-- errno@0.1.7
| |   `-- prr@1.0.1
| `-- write-file-atomic@2.3.0
|   +-- graceful-fs@4.1.11 deduped
|   +-- imurmurhash@0.1.4 deduped
|   `-- signal-exit@3.0.2 deduped
`-- nyc@13.1.0
  +-- archy@1.0.0
  +-- arrify@1.0.1
  +-- caching-transform@2.0.0
  | +-- make-dir@1.3.0 deduped
  | +-- md5-hex@2.0.0
  | | `-- md5-o-matic@0.1.1
  | +-- package-hash@2.0.0
  | | +-- graceful-fs@4.1.11
  | | +-- lodash.flattendeep@4.4.0
  | | +-- md5-hex@2.0.0 deduped
  | | `-- release-zalgo@1.0.0
  | |   `-- es6-error@4.1.1
  | `-- write-file-atomic@2.3.0
  |   +-- graceful-fs@4.1.11 deduped
  |   +-- imurmurhash@0.1.4
  |   `-- signal-exit@3.0.2 deduped
  +-- convert-source-map@1.6.0
  | `-- safe-buffer@5.1.2
  +-- debug-log@1.0.1
  +-- find-cache-dir@2.0.0
  | +-- commondir@1.0.1
  | +-- make-dir@1.3.0 deduped
  | `-- pkg-dir@3.0.0
  |   `-- find-up@3.0.0 deduped
  +-- find-up@3.0.0
  | `-- locate-path@3.0.0
  |   +-- p-locate@3.0.0
  |   | `-- p-limit@2.0.0
  |   |   `-- p-try@2.0.0
  |   `-- path-exists@3.0.0
  +-- foreground-child@1.5.6
  | +-- cross-spawn@4.0.2
  | | +-- lru-cache@4.1.3
  | | | +-- pseudomap@1.0.2
  | | | `-- yallist@2.1.2
  | | `-- which@1.3.1 deduped
  | `-- signal-exit@3.0.2 deduped
  +-- glob@7.1.3
  | +-- fs.realpath@1.0.0
  | +-- inflight@1.0.6
  | | +-- once@1.4.0 deduped
  | | `-- wrappy@1.0.2
  | +-- inherits@2.0.3
  | +-- minimatch@3.0.4
  | | `-- brace-expansion@1.1.11
  | |   +-- balanced-match@1.0.0
  | |   `-- concat-map@0.0.1
  | +-- once@1.4.0
  | | `-- wrappy@1.0.2 deduped
  | `-- path-is-absolute@1.0.1
  +-- istanbul-lib-coverage@2.0.1
  +-- istanbul-lib-hook@2.0.1
  | `-- append-transform@1.0.0
  |   `-- default-require-extensions@2.0.0
  |     `-- strip-bom@3.0.0
  +-- istanbul-lib-instrument@3.0.0
  | +-- @babel/generator@7.2.2
  | | +-- @babel/types@7.2.2 deduped
  | | +-- jsesc@2.5.2
  | | +-- lodash@4.17.11
  | | +-- source-map@0.5.7
  | | `-- trim-right@1.0.1
  | +-- @babel/parser@7.2.3
  | +-- @babel/template@7.2.2
  | | +-- @babel/code-frame@7.0.0
  | | | `-- @babel/highlight@7.0.0
  | | |   +-- chalk@2.4.1
  | | |   | +-- ansi-styles@3.2.1
  | | |   | | `-- color-convert@1.9.3
  | | |   | |   `-- color-name@1.1.3
  | | |   | +-- escape-string-regexp@1.0.5
  | | |   | `-- supports-color@5.4.0 deduped
  | | |   +-- esutils@2.0.2 deduped
  | | |   `-- js-tokens@4.0.0
  | | +-- @babel/parser@7.2.3 deduped
  | | `-- @babel/types@7.2.2 deduped
  | +-- @babel/traverse@7.2.3
  | | +-- @babel/code-frame@7.0.0 deduped
  | | +-- @babel/generator@7.2.2 deduped
  | | +-- @babel/helper-function-name@7.1.0
  | | | +-- @babel/helper-get-function-arity@7.0.0
  | | | | `-- @babel/types@7.2.2 deduped
  | | | +-- @babel/template@7.2.2 deduped
  | | | `-- @babel/types@7.2.2 deduped
  | | +-- @babel/helper-split-export-declaration@7.0.0
  | | | `-- @babel/types@7.2.2 deduped
  | | +-- @babel/parser@7.2.3 deduped
  | | +-- @babel/types@7.2.2 deduped
  | | +-- debug@4.1.1
  | | | `-- ms@2.1.1
  | | +-- globals@11.9.0
  | | `-- lodash@4.17.11 deduped
  | +-- @babel/types@7.2.2
  | | +-- esutils@2.0.2
  | | +-- lodash@4.17.11 deduped
  | | `-- to-fast-properties@2.0.0
  | +-- istanbul-lib-coverage@2.0.1 deduped
  | `-- semver@5.5.0
  +-- istanbul-lib-report@2.0.2
  | +-- istanbul-lib-coverage@2.0.1 deduped
  | +-- make-dir@1.3.0 deduped
  | `-- supports-color@5.4.0
  |   `-- has-flag@3.0.0
  +-- istanbul-lib-source-maps@2.0.1
  | +-- debug@3.1.0
  | | `-- ms@2.0.0
  | +-- istanbul-lib-coverage@2.0.1 deduped
  | +-- make-dir@1.3.0 deduped
  | +-- rimraf@2.6.2 deduped
  | `-- source-map@0.6.1
  +-- istanbul-reports@2.0.1
  | `-- handlebars@4.0.11
  |   +-- async@1.5.2
  |   +-- optimist@0.6.1
  |   | +-- minimist@0.0.10
  |   | `-- wordwrap@0.0.3
  |   +-- source-map@0.4.4
  |   | `-- amdefine@1.0.1
  |   `-- uglify-js@2.8.29
  |     +-- source-map@0.5.7 deduped
  |     +-- uglify-to-browserify@1.0.2
  |     `-- yargs@3.10.0
  |       +-- camelcase@1.2.1
  |       +-- cliui@2.1.0
  |       | +-- center-align@0.1.3
  |       | | +-- align-text@0.1.4
  |       | | | +-- kind-of@3.2.2
  |       | | | | `-- is-buffer@1.1.6
  |       | | | +-- longest@1.0.1
  |       | | | `-- repeat-string@1.6.1
  |       | | `-- lazy-cache@1.0.4
  |       | +-- right-align@0.1.3
  |       | | `-- align-text@0.1.4 deduped
  |       | `-- wordwrap@0.0.2
  |       +-- decamelize@1.2.0 deduped
  |       `-- window-size@0.1.0
  +-- make-dir@1.3.0
  | `-- pify@3.0.0
  +-- merge-source-map@1.1.0
  | `-- source-map@0.6.1
  +-- resolve-from@4.0.0
  +-- rimraf@2.6.2
  | `-- glob@7.1.3 deduped
  +-- signal-exit@3.0.2
  +-- spawn-wrap@1.4.2
  | +-- foreground-child@1.5.6 deduped
  | +-- mkdirp@0.5.1
  | | `-- minimist@0.0.8
  | +-- os-homedir@1.0.2
  | +-- rimraf@2.6.2 deduped
  | +-- signal-exit@3.0.2 deduped
  | `-- which@1.3.1
  |   `-- isexe@2.0.0
  +-- test-exclude@5.0.0
  | +-- arrify@1.0.1 deduped
  | +-- minimatch@3.0.4 deduped
  | +-- read-pkg-up@4.0.0
  | | +-- find-up@3.0.0 deduped
  | | `-- read-pkg@3.0.0
  | |   +-- load-json-file@4.0.0
  | |   | +-- graceful-fs@4.1.11 deduped
  | |   | +-- parse-json@4.0.0
  | |   | | +-- error-ex@1.3.2
  | |   | | | `-- is-arrayish@0.2.1
  | |   | | `-- json-parse-better-errors@1.0.2
  | |   | +-- pify@3.0.0 deduped
  | |   | `-- strip-bom@3.0.0 deduped
  | |   +-- normalize-package-data@2.4.0
  | |   | +-- hosted-git-info@2.7.1
  | |   | +-- is-builtin-module@1.0.0
  | |   | | `-- builtin-modules@1.1.1
  | |   | +-- semver@5.5.0 deduped
  | |   | `-- validate-npm-package-license@3.0.3
  | |   |   +-- spdx-correct@3.0.0
  | |   |   | +-- spdx-expression-parse@3.0.0 deduped
  | |   |   | `-- spdx-license-ids@3.0.0
  | |   |   `-- spdx-expression-parse@3.0.0
  | |   |     +-- spdx-exceptions@2.1.0
  | |   |     `-- spdx-license-ids@3.0.0 deduped
  | |   `-- path-type@3.0.0
  | |     `-- pify@3.0.0 deduped
  | `-- require-main-filename@1.0.1
  +-- uuid@3.3.2
  +-- yargs@11.1.0
  | +-- cliui@4.1.0
  | | +-- string-width@2.1.1 deduped
  | | +-- strip-ansi@4.0.0 deduped
  | | `-- wrap-ansi@2.1.0
  | |   +-- string-width@1.0.2
  | |   | +-- code-point-at@1.1.0
  | |   | +-- is-fullwidth-code-point@1.0.0
  | |   | | `-- number-is-nan@1.0.1
  | |   | `-- strip-ansi@3.0.1 deduped
  | |   `-- strip-ansi@3.0.1
  | |     `-- ansi-regex@2.1.1
  | +-- decamelize@1.2.0
  | +-- find-up@2.1.0
  | | `-- locate-path@2.0.0
  | |   +-- p-locate@2.0.0
  | |   | `-- p-limit@1.3.0
  | |   |   `-- p-try@1.0.0
  | |   `-- path-exists@3.0.0 deduped
  | +-- get-caller-file@1.0.3
  | +-- os-locale@2.1.0
  | | +-- execa@0.7.0
  | | | +-- cross-spawn@5.1.0
  | | | | +-- lru-cache@4.1.3 deduped
  | | | | +-- shebang-command@1.2.0
  | | | | | `-- shebang-regex@1.0.0
  | | | | `-- which@1.3.1 deduped
  | | | +-- get-stream@3.0.0
  | | | +-- is-stream@1.1.0
  | | | +-- npm-run-path@2.0.2
  | | | | `-- path-key@2.0.1
  | | | +-- p-finally@1.0.0
  | | | +-- signal-exit@3.0.2 deduped
  | | | `-- strip-eof@1.0.0
  | | +-- lcid@1.0.0
  | | | `-- invert-kv@1.0.0
  | | `-- mem@1.1.0
  | |   `-- mimic-fn@1.2.0
  | +-- require-directory@2.1.1
  | +-- require-main-filename@1.0.1 deduped
  | +-- set-blocking@2.0.0
  | +-- string-width@2.1.1
  | | +-- is-fullwidth-code-point@2.0.0
  | | `-- strip-ansi@4.0.0
  | |   `-- ansi-regex@3.0.0
  | +-- which-module@2.0.0
  | +-- y18n@3.2.1
  | `-- yargs-parser@9.0.2 deduped
  `-- yargs-parser@9.0.2
    `-- camelcase@4.1.0

@JaKXz
Copy link
Member

JaKXz commented Jan 5, 2019

@morris your issue sounds like it's different from the original... would you mind trying to reproduce it in a minimal example repo and opening a new issue when you do? Also, nyc is a dependency of npm since I'm pretty npm uses nyc for coverage :)

One minor thing, I hope you don't mind, I edited your comment for thread readability.

@quentinvernot thank you for sharing! Are we satisfied to close this issue?

@quentinvernot
Copy link

quentinvernot commented Jan 7, 2019

Looks good to me, keep in mind that yarn's 1.13.0 is a pre-release, so it's not really fixed yet, but it was never nyc's fault in the first place. Up to you.

@JaKXz
Copy link
Member

JaKXz commented Jan 7, 2019

Great, thanks!

@JaKXz JaKXz closed this as completed Jan 7, 2019
@onehorsetown
Copy link

Just tried yarn 1.13.0 via brew and the problem still persists.

@quentinvernot
Copy link

@onehorsetown Okay, just upgraded my real yarn to 1.13.0 and removed my little hack with the hardcoded path, and... it doesn't work. If I keep the hardcoded path (with /usr/bin/yarn this time) it works though.

It gets weirder, I made nyc run which yarn just in case:

{
  "scripts": {
    "coverage": "nyc --reporter=lcov --reporter=text-summary which yarn"
  }
}

And got this:

$ yarn coverage
yarn run v1.13.0
$ nyc --reporter=lcov --reporter=text-summary which yarn
/tmp/yarn--1547824229222-0.5258100608719858/yarn

Here is the content of this /tmp/yarn--1547824229222-0.5258100608719858/yarn:

#!/bin/sh

exec "/usr/bin/node" "/usr/bin/yarn" "$@"

It's a new tmp file every time btw. It looks like yarn is doing this, no idea why so far... Probably don't reopen this issue, doesn't look like it's nyc's fault.

@jdoubleu
Copy link

jdoubleu commented Jan 24, 2019

symptoms

I had the exact same problems:

  • Running coverage locally worked
  • Running coverage in CI didn't

setup

I am using nyc with mocha to test native NodeJS code without any transpiler.

npm

I am using npm so this yarn issue didn't apply. I even updated npm locally (to 6.7.0) to check whether it would be broken like in the yarn case. But it worked fine.

node

Another difference between the CI environment and my local one was the NodeJS version.

  • Locally I was using v11.6,
  • In CI the version was v11.7, since I was using the latest node version

Then I tested coverage with both versions and it seems like v11.6 is working but v11.7 isn't.
There are no errors displayed, whatsoever.

conclusion

I don't know if the yarn bug from above is just another issue or it has something todo with node.

If someone can confirm this issue with node v11.7 it might be a new issue.

jmbtutor added a commit to groupby/storefront that referenced this issue Jan 24, 2019
This pins the version of node to 11.6.0 and yarn 1.12.3. node 11.7.0 or
yarn 1.13.0 causes nyc to report 0% coverage.

istanbuljs/nyc#921
yarnpkg/yarn#6746

circleci/node:11.6.0
Digest: sha256:1a3a10a092bdfa3d92d48850818a5526b5770a58592156f6f8e6a5f7d946ac43
Created 2019-01-18T00:14:29.784667795Z
NODE_VERSION=11.6.0
YARN_VERSION=1.12.3
@IvanGoncharov
Copy link

@jdoubleu It's a new issue that triggered by node 11.7, more details here:
nodejs/node#25650

@sjl2
Copy link

sjl2 commented Feb 1, 2019

Can confirm that the same behavior occurs on Node 8.10.0 as discussed here: yarnpkg/yarn#6746.

@AnanyaJha
Copy link

AnanyaJha commented Feb 8, 2019

I'm having the same issue with Node 8.9.4 using npm nyc & mocha, more details here: #822 (comment)

In reimplementing the 'testrunner' file that comes with codecov, we have the following methods that interact with mocha

      mocha
        .run((failures: any) => {
          process.on('exit', () => {
            console.log(
              `Existing test process, code should be ${failureCount}`
            );
            process.exit(failures); // exit with non-zero status if there were failures
          });
        })
        .on('fail', (test: any, err: any): void => {
          console.log(`Failure in test '${test}': ${err}`);
          failureCount++;
        })
        .on('end', (): void => {
          console.log(`Tests ended with ${failureCount} failure(s)`);
          clb(undefined, failureCount);
        });
    } catch (error) {
      console.error('An error occured: ' + error);
      return clb(error);
    }

which use the functionality that was referenced here (nodejs/node#25650) with the process.exit() and process.on(exit) no longer working together, but we are still in Node 8.9.4

@worc
Copy link

worc commented Feb 21, 2019

also broken on yarn 1.13.0 and node 10.15.1

@danielsss
Copy link

also broken on lerna

@wmenegali
Copy link

For me, it works on node v10.15 using NPM but not with yarn (v1.13.0).

@jcolemorrison
Copy link

Same for me @wmenegali . Looks to be a yarn issue.

@worc
Copy link

worc commented Mar 21, 2019

still broken on yarn 1.15.2 and node 10.15.3, but i did find a workaround. you can still use yarn to call into the coverage script, but you have to run your tests with npm in order for nyc to actually pick up on the metrics coming out of the tests.

@hkmarques
Copy link

Still facing the issue with yarn v1.16.0, using npm to run the tests like @worc suggested does the trick.

@troskoff
Copy link

yarn 1.17.3, nyc 14.1.1 - still the same problem

@narwajea
Copy link

narwajea commented Nov 19, 2019

Same here: yarnpkg/yarn#6746 (comment)

CaptainAchab pushed a commit to TankerHQ/sdk-js that referenced this issue Feb 20, 2020
@vineeshtp
Copy link

This solved my issue.
https://stackoverflow.com/questions/61220138/mocha-chai-coverage-unknown

@aubreyyan
Copy link

not for me

@monsam
Copy link

monsam commented Aug 13, 2020

same issue, why the hell the ticket is closed?

@monsam
Copy link

monsam commented Aug 13, 2020

even worse when I hardcode the yarn path I get FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

@eechava6
Copy link

Same issue here

@idanElitzur
Copy link

Are there any news regarding this issue?
I'm facing with the same issue with cy v11.1

getting the error below:
Cannot find coverage file /Users/myuser/repos/myrepo/.nyc_output/out.json Skipping coverage report

=============================== Coverage summary ===============================
Statements   : Unknown% ( 0/0 )
Branches     : Unknown% ( 0/0 )
Functions    : Unknown% ( 0/0 )
Lines        : Unknown% ( 0/0 )
================================================================================

@catamphetamine
@3den

@ghsouza89
Copy link

is this closed for which reason? is the fix in another ticket?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests