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

nyc reports no coverage in parallel mode in powershell/cmd #4372

Closed
3 of 4 tasks
curbengh opened this issue Jul 10, 2020 · 32 comments
Closed
3 of 4 tasks

nyc reports no coverage in parallel mode in powershell/cmd #4372

curbengh opened this issue Jul 10, 2020 · 32 comments
Labels
area: node.js command-line-or-Node.js-specific area: windows Windows-specific type: bug a defect, confirmed by a maintainer

Comments

@curbengh
Copy link

Cross-posting istanbuljs/nyc#1328 here.

Prerequisites

  • Checked that your issue hasn't already been filed by cross-referencing issues with the faq label
  • Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
  • 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
  • Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with: node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend that you not install Mocha globally.

Link to bug demonstration repository

hexojs/hexo#4374

Expected Behavior

nyc --reporter=lcovonly mocha --parallel should produce "./coverage/lcov.info".
nyc --reporter=text-summary mocha --parallel should display coverage report.

Observed Behavior

nyc --reporter=lcovonly mocha --parallel generates an empty "./coverage/lcov.info".
nyc --reporter=text-summary mocha --parallel:

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

Troubleshooting steps

No issue in mocha's default serial mode.

Environment Information

  System:
    OS: Linux 4.9 Solus 4.1
    CPU: (1) x64 Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
    Memory: 1.53 GB / 2.94 GB
  npmPackages:
    nyc: ^15.0.0 => 15.1.0 

Reproduces how often: [What percentage of the time does it reproduce?] 100%

Versions

  • The output of mocha --version and node node_modules/.bin/mocha --version: 8.0.1 & 8.0.1
  • The output of node --version: v12.18.0
  • Your shell (e.g., bash, zsh, PowerShell, cmd): bash
  • Your browser and version (if running browser tests): NA
  • Any third-party Mocha-related modules (and their versions): NA
  • Any code transpiler (e.g., TypeScript, CoffeeScript, Babel) being used (and its version): NA

Additional Information

".mocharc.yml"

color: true
reporter: spec
ui: bdd
full-trace: true
exit: true
require: 
  - "chai/register-should"
parallel: true
@sgissinger
Copy link

Hi,
I have the same behavior, everything is good when running nyc mocha.

But when running nyc mocha --parallel the result is the same as what described @curbengh

@Bluefinger
Copy link

I can confirm I have this issue as well. My setup is with pnpm + typescript, and while I have to run nyc with --use-spawn-wrap, the moment I run mocha in parallel mode, I lose my code coverage. Running mocha with parallel off gets me working coverage from nyc.

Env: Windows 10
Mocha version: 8.1.1
Node version: v14.4.0
Shell: PowerShell
Transpiler: Typescript @ v3.9.7

".mocharc.js":

module.exports = {
  checkLeaks: true,
  diff: true,
  color: true,
  extension: ["ts"],
  growl: false,
  reporter: "spec",
  recursive: false,
  require: ["ts-node/register"],
  spec: "test/**/*.spec.ts",
  slow: 500,
  // parallel: !process.env.CI,
};

@mdrichardson
Copy link

I'm running into this as well. Has anybody found a temporary workaround?

@curbengh
Copy link
Author

I disable parallel mode in coverage test.

  "scripts": {
    "test": "mocha test/index.js",
    "test-cov": "nyc --reporter=lcovonly npm run test -- --no-parallel",
  },

@outsideris
Copy link
Member

I'm not sure whether it is mocha's bug. I tested it with hexo@ebc9008f

Results are different base on hexo's test suites. I did dig hexo source code, but I didn't find what affect coverage.

test/scripts/console/index.js

$ ./node_modules/.bin/nyc --reporter=text-summary ./node_modules/.bin/mocha --parallel test/scripts/console/index.js

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

test/scripts/extend/index.js

$ ./node_modules/.bin/nyc --reporter=text-summary ./node_modules/.bin/mocha --parallel test/scripts/extend/index.js

=============================== Coverage summary ===============================
Statements   : 97.2% ( 347/357 )
Branches     : 92.72% ( 191/206 )
Functions    : 100% ( 81/81 )
Lines        : 99.03% ( 306/309 )
================================================================================

@boneskull
Copy link
Member

need to find the root cause here... I'll take a look at this today. I'll be using botbuilder-js for an example repo (@mdrichardson)

@boneskull
Copy link
Member

@mdrichardson Running nyc with my working copy of Mocha's master branch results in coverage, but running it with mocha@v8.1.3 (the current version) does not. trying to figure out why

@mdrichardson
Copy link

@boneskull Ooooh, that's interesting. I tried it again a couple of weeks ago with the latest mocha/nyc at the time and it didn't work.

@boneskull
Copy link
Member

tbh I'm a little confused about the monorepo setup. how to upgrade mocha on all the subpackages? I also note that nyc is present in the subpackages' package.json but not the monorepo package.json

@mdrichardson
Copy link

@boneskull I just did a find/replace w/ regex, as I recall.

@boneskull
Copy link
Member

wow.

this was fixed by the upgrade to workerpool in #4465 which included my PR josdejong/workerpool#176. I imagine nyc was getting confused due to temporarily-orphaned processes, somehow.

(@mdrichardson mind you, in botbuilder-js, there is a bit of weirdness that you'll need to look into when running in parallel)

so nyc and parallel mode will work properly in mocha v8.2.0, which I'm getting ready for release. early next week at latest, today soonest

@boneskull
Copy link
Member

closed by #4465

@mdrichardson
Copy link

@boneskull Awesome. Nice find!

...and yeah, I'm aware of the weirdness ;)

@boneskull
Copy link
Member

@mdrichardson you may want to --trace-warnings and open an issue here if mocha is the culprit. I've seen mocha use too many event listeners on occasion when running in parallel, and I'd like to figure out what's going on there if it's still a problem.

@mdrichardson
Copy link

mdrichardson commented Oct 16, 2020

@boneskull Will do. I believe the event listeners piece, at least is unrelated to mocha

@boneskull boneskull added type: bug a defect, confirmed by a maintainer and removed unconfirmed-bug labels Oct 16, 2020
@mdrichardson
Copy link

@boneskull I still don't seem to get coverage reporting with botbuilder-js, when enabling --parallel. Here are the steps to reproduce:

  1. git clone https://github.com/microsoft/botbuilder-js
  2. cd botbuilder-js
  3. Open in VS Code and Global Find/Replace (regex):
    1. "mocha":\s?"\^?\d\d?\.\d\.?\d?", with "mocha": "^8.2.0",
    2. "nyc":\s?"\^?\d\d?\.\d\.?\d?", with "nyc": "^15.1.0",
  4. Just in case, npm i -G nyc@latest mocha@latest
  5. npm i
  6. npm run build
  7. Add --parallel to package.json > scripts > test-coverage
  8. npm run test-coverage

Am I missing something?

@boneskull
Copy link
Member

@mdrichardson I'll take a look

@boneskull
Copy link
Member

boneskull commented Oct 20, 2020

  1. pulled main branch from botbuilder repo into my working copy
  2. search/replace as you did for mocha (I didn't bother upgrading nyc)
  3. I ran lerna clean -y then rm -rf node_modules
  4. now npm i and npm run build
  5. update test-coverage to nyc mocha \"libraries/@(adaptive*|bot*)/tests/**/*.test.js\" --exit --check-leaks --parallel
  6. run npm run test-coverage
-----------------------------|---------|----------|---------|---------|-------------------
File                         | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-----------------------------|---------|----------|---------|---------|-------------------
All files                    |   88.14 |    76.52 |   89.38 |   88.42 |                   
 adaptive-expressions/src    |   88.75 |    82.68 |   85.71 |   88.62 |                   
  commonRegex.ts             |     100 |      100 |     100 |     100 |                   
  constant.ts                |   94.29 |    88.46 |     100 |   94.12 | 58,81             
  datetimeFormatConverter.ts |   72.82 |    58.33 |     100 |   72.82 | ...38,443-444,458 
  expression.ts              |   90.51 |       89 |   77.27 |   90.26 | ...98,333,356-358 
  expressionEvaluator.ts     |     100 |      100 |     100 |     100 |                   
  expressionFunctions.ts     |     100 |      100 |     100 |     100 |                   
  expressionType.ts          |     100 |      100 |     100 |     100 |                   
  extensions.ts              |   83.33 |       90 |     100 |   83.33 | 24                
  functionTable.ts           |   52.94 |    56.25 |   26.67 |   52.94 | ...7,72-73,87-115 
  functionUtils.internal.ts  |   95.81 |    93.55 |     100 |   95.76 | ...11,413,425,446 
  functionUtils.ts           |   95.51 |    95.41 |   95.12 |   95.38 | ...16-420,591,599 
  index.ts                   |     100 |      100 |     100 |     100 |                   
  options.ts                 |     100 |      100 |     100 |     100 |                   
  regexErrorListener.ts      |     100 |      100 |     100 |     100 |                   
  returnType.ts              |     100 |      100 |     100 |     100 |                   
  timeZoneConverter.ts       |    87.5 |    83.33 |      75 |    87.5 | 538-543           
 ...ons/src/builtinFunctions |   97.06 |    85.17 |     100 |   97.02 |                   
  accessor.ts                |   83.33 |    76.47 |     100 |   83.33 | 36,45,69,72       
  add.ts                     |   95.24 |    96.15 |     100 |   95.24 | 41                
  addDays.ts                 |     100 |      100 |     100 |     100 |                   
  addHours.ts                |     100 |      100 |     100 |     100 |                   
  addMinutes.ts              |     100 |      100 |     100 |     100 |                   
  addOrdinal.ts              |     100 |      100 |     100 |     100 |                   
  addProperty.ts             |   92.86 |       50 |     100 |   92.86 | 36                
  addSeconds.ts              |     100 |      100 |     100 |     100 |                   
  addToTime.ts               |   74.42 |    57.14 |     100 |   74.42 | 45,70-81,100-106  
  and.ts                     |     100 |      100 |     100 |     100 |                   
  average.ts                 |     100 |      100 |     100 |     100 |                   
  base64.ts                  |     100 |      100 |     100 |     100 |                   
  base64ToBinary.ts          |     100 |      100 |     100 |     100 |                   
  base64ToString.ts          |     100 |      100 |     100 |     100 |                   
  binary.ts                  |     100 |      100 |     100 |     100 |                   
  bool.ts                    |     100 |      100 |     100 |     100 |                   
  ceiling.ts                 |     100 |      100 |     100 |     100 |                   
  coalesce.ts                |     100 |      100 |     100 |     100 |                   
  comparisonEvaluator.ts     |   95.83 |      100 |     100 |   95.83 | 61                
  concat.ts                  |    96.3 |    96.43 |     100 |    96.3 | 35                
  contains.ts                |   94.74 |    76.92 |     100 |   94.74 | 35                
  convertFromUTC.ts          |   92.86 |    83.33 |     100 |   92.86 | 44,64             
  convertToUTC.ts            |   91.89 |    83.33 |     100 |   91.89 | 39,71,78          
  count.ts                   |   93.33 |       75 |     100 |   93.33 | 29                
  countWord.ts               |     100 |      100 |     100 |     100 |                   
  createArray.ts             |     100 |      100 |     100 |     100 |                   
  dataUri.ts                 |     100 |      100 |     100 |     100 |                   
  dataUriToBinary.ts         |     100 |      100 |     100 |     100 |                   
  dataUriToString.ts         |     100 |      100 |     100 |     100 |                   
  dateFunc.ts                |     100 |      100 |     100 |     100 |                   
  dateReadBack.ts            |   77.78 |      100 |     100 |   77.78 | 34-38             
  dateTimeDiff.ts            |     100 |    83.33 |     100 |     100 | 32                
  dayOfMonth.ts              |     100 |      100 |     100 |     100 |                   
  dayOfWeek.ts               |     100 |      100 |     100 |     100 |                   
  dayOfYear.ts               |     100 |      100 |     100 |     100 |                   
  divide.ts                  |     100 |      100 |     100 |     100 |                   
  element.ts                 |     100 |       75 |     100 |     100 | 39-44             
  empty.ts                   |    87.5 |       75 |     100 |    87.5 | 41,47             
  endsWith.ts                |     100 |      100 |     100 |     100 |                   
  equal.ts                   |     100 |      100 |     100 |     100 |                   
  exists.ts                  |     100 |      100 |     100 |     100 |                   
  first.ts                   |     100 |      100 |     100 |     100 |                   
  flatten.ts                 |      96 |     87.5 |     100 |   95.24 | 42                
  float.ts                   |     100 |      100 |     100 |     100 |                   
  floor.ts                   |     100 |      100 |     100 |     100 |                   
  foreach.ts                 |     100 |      100 |     100 |     100 |                   
  formatDateTime.ts          |     100 |      100 |     100 |     100 |                   
  formatEpoch.ts             |   94.12 |       50 |     100 |   94.12 | 36                
  formatNumber.ts            |      90 |       80 |     100 |      90 | 39,41             
  formatTicks.ts             |    91.3 |       70 |     100 |    91.3 | 38,41             
  getFutureTime.ts           |     100 |       90 |     100 |     100 | 38                
  getNextViableDate.ts       |   97.78 |    91.43 |     100 |   97.78 | 68                
  getNextViableTime.ts       |   95.45 |       80 |     100 |   95.45 | 64,93             
  getPastTime.ts             |     100 |       90 |     100 |     100 | 38                
  getPreviousViableDate.ts   |   95.56 |    88.57 |     100 |   95.56 | 68,95             
  getPreviousViableTime.ts   |   97.73 |       84 |     100 |   97.73 | 64                
  getProperty.ts             |     100 |       75 |     100 |     100 | 40,52             
  getTimeOfDay.ts            |     100 |    95.45 |     100 |     100 | 52                
  greaterThan.ts             |     100 |      100 |     100 |     100 |                   
  greaterThanOrEqual.ts      |     100 |      100 |     100 |     100 |                   
  if.ts                      |     100 |      100 |     100 |     100 |                   
  ignore.ts                  |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  indexOf.ts                 |     100 |    91.67 |     100 |     100 | 37                
  indicesAndValues.ts        |     100 |    83.33 |     100 |     100 | 42                
  int.ts                     |     100 |      100 |     100 |     100 |                   
  intersection.ts            |     100 |      100 |     100 |     100 |                   
  isArray.ts                 |     100 |      100 |     100 |     100 |                   
  isBoolean.ts               |     100 |      100 |     100 |     100 |                   
  isDate.ts                  |     100 |    88.89 |     100 |     100 | 40                
  isDateRange.ts             |     100 |       75 |     100 |     100 | 39,45             
  isDateTime.ts              |     100 |      100 |     100 |     100 |                   
  isDefinite.ts              |     100 |     87.5 |     100 |     100 | 39                
  isDuration.ts              |     100 |    92.31 |     100 |     100 | 39                
  isFloat.ts                 |     100 |      100 |     100 |     100 |                   
  isInteger.ts               |     100 |      100 |     100 |     100 |                   
  isMatch.ts                 |   89.47 |     87.5 |     100 |   89.47 | 36-37             
  isObject.ts                |     100 |      100 |     100 |     100 |                   
  isPresent.ts               |     100 |    83.33 |     100 |     100 | 39                
  isString.ts                |     100 |      100 |     100 |     100 |                   
  isTime.ts                  |     100 |    88.89 |     100 |     100 | 40                
  isTimeRange.ts             |     100 |    83.33 |     100 |     100 | 39                
  jPath.ts                   |   95.45 |    83.33 |     100 |   95.24 | 51                
  join.ts                    |     100 |     87.5 |     100 |     100 | 36                
  json.ts                    |     100 |      100 |     100 |     100 |                   
  jsonStringify.ts           |     100 |      100 |     100 |     100 |                   
  last.ts                    |     100 |      100 |     100 |     100 |                   
  lastIndexOf.ts             |     100 |    91.67 |     100 |     100 | 37                
  length.ts                  |     100 |      100 |     100 |     100 |                   
  lessThan.ts                |     100 |      100 |     100 |     100 |                   
  lessThanOrEqual.ts         |     100 |      100 |     100 |     100 |                   
  max.ts                     |     100 |      100 |     100 |     100 |                   
  merge.ts                   |     100 |      100 |     100 |     100 |                   
  min.ts                     |     100 |      100 |     100 |     100 |                   
  mod.ts                     |     100 |      100 |     100 |     100 |                   
  month.ts                   |     100 |      100 |     100 |     100 |                   
  multiply.ts                |     100 |      100 |     100 |     100 |                   
  ...iateNumericEvaluator.ts |     100 |      100 |     100 |     100 |                   
  newGuid.ts                 |     100 |      100 |     100 |     100 |                   
  not.ts                     |   88.24 |       50 |     100 |   88.24 | 42-43             
  notEqual.ts                |     100 |      100 |     100 |     100 |                   
  ...erTransformEvaluator.ts |     100 |      100 |     100 |     100 |                   
  numericEvaluator.ts        |     100 |      100 |     100 |     100 |                   
  optional.ts                |     100 |      100 |     100 |     100 |                   
  or.ts                      |     100 |      100 |     100 |     100 |                   
  power.ts                   |     100 |      100 |     100 |     100 |                   
  rand.ts                    |     100 |      100 |     100 |     100 |                   
  range.ts                   |     100 |      100 |     100 |     100 |                   
  removeProperty.ts          |     100 |      100 |     100 |     100 |                   
  replace.ts                 |     100 |      100 |     100 |     100 |                   
  replaceIgnoreCase.ts       |     100 |      100 |     100 |     100 |                   
  reverse.ts                 |   93.75 |       75 |     100 |   93.75 | 38                
  round.ts                   |   88.24 |       75 |     100 |   88.24 | 33,39             
  select.ts                  |     100 |      100 |     100 |     100 |                   
  sentenceCase.ts            |   88.89 |       50 |     100 |   88.89 | 31                
  setPathToValue.ts          |    87.5 |    66.67 |     100 |    87.5 | 34,43             
  setProperty.ts             |     100 |      100 |     100 |     100 |                   
  skip.ts                    |   95.24 |    85.71 |     100 |   95.24 | 43                
  sortBy.ts                  |     100 |      100 |     100 |     100 |                   
  sortByDescending.ts        |     100 |      100 |     100 |     100 |                   
  split.ts                   |     100 |      100 |     100 |     100 |                   
  startOfDay.ts              |   95.65 |     62.5 |     100 |   95.65 | 44                
  startOfHour.ts             |   95.65 |     62.5 |     100 |   95.65 | 44                
  startOfMonth.ts            |   95.65 |     62.5 |     100 |   95.65 | 44                
  startsWith.ts              |     100 |      100 |     100 |     100 |                   
  string.ts                  |     100 |      100 |     100 |     100 |                   
  ...ngTransformEvaluator.ts |     100 |      100 |     100 |     100 |                   
  subArray.ts                |   93.33 |    88.46 |     100 |   93.33 | 44,56             
  substring.ts               |     100 |    96.43 |     100 |     100 | 36                
  subtract.ts                |     100 |      100 |     100 |     100 |                   
  subtractFromTime.ts        |     100 |    76.92 |     100 |     100 | 43,46,54          
  sum.ts                     |     100 |      100 |     100 |     100 |                   
  take.ts                    |   95.24 |     87.5 |     100 |   95.24 | 44                
  ticks.ts                   |   93.33 |       50 |     100 |   93.33 | 40                
  ticksToDays.ts             |     100 |       75 |     100 |     100 | 37                
  ticksToHours.ts            |     100 |       75 |     100 |     100 | 42                
  ticksToMinutes.ts          |     100 |       75 |     100 |     100 | 42                
  timeTransformEvaluator.ts  |     100 |    91.67 |     100 |     100 | 41                
  titleCase.ts               |      90 |       50 |     100 |      90 | 30                
  toLower.ts                 |     100 |      100 |     100 |     100 |                   
  toUpper.ts                 |     100 |      100 |     100 |     100 |                   
  trim.ts                    |     100 |      100 |     100 |     100 |                   
  union.ts                   |     100 |      100 |     100 |     100 |                   
  unique.ts                  |     100 |      100 |     100 |     100 |                   
  uriComponent.ts            |     100 |      100 |     100 |     100 |                   
  uriComponentToString.ts    |     100 |      100 |     100 |     100 |                   
  uriHost.ts                 |   90.48 |    66.67 |     100 |   90.48 | 40,58             
  uriPath.ts                 |   90.48 |    66.67 |     100 |   90.48 | 40,58             
  uriPathAndQuery.ts         |   95.24 |    66.67 |     100 |   95.24 | 63                
  uriPort.ts                 |   95.24 |    66.67 |     100 |   95.24 | 58                
  uriQuery.ts                |   95.24 |    66.67 |     100 |   95.24 | 58                
  uriScheme.ts               |   95.24 |    66.67 |     100 |   95.24 | 58                
  utcNow.ts                  |     100 |      100 |     100 |     100 |                   
  where.ts                   |     100 |    92.86 |     100 |     100 | 38                
  year.ts                    |     100 |      100 |     100 |     100 |                   
 ...pressions/src/converters |   95.35 |    54.55 |     100 |   95.35 |                   
  ...yExpressionConverter.ts |     100 |       50 |     100 |     100 | 16                
  boolExpressionConverter.ts |     100 |       50 |     100 |     100 | 16                
  enumExpressionConverter.ts |      80 |    66.67 |     100 |      80 | 23,29             
  expressionConverter.ts     |     100 |       50 |     100 |     100 | 13                
  index.ts                   |     100 |      100 |     100 |     100 |                   
  intExpressionConverter.ts  |     100 |       50 |     100 |     100 | 16                
  ...rExpressionConverter.ts |     100 |       50 |     100 |     100 | 16                
  ...tExpressionConverter.ts |     100 |       50 |     100 |     100 | 16                
  ...ngExpressionConveter.ts |     100 |       50 |     100 |     100 | 16                
  ...eExpressionConverter.ts |     100 |       50 |     100 |     100 | 13                
 ...src/expressionProperties |   83.96 |       72 |     100 |   83.96 |                   
  arrayExpression.ts         |     100 |      100 |     100 |     100 |                   
  boolExpression.ts          |     100 |      100 |     100 |     100 |                   
  enumExpression.ts          |     100 |      100 |     100 |     100 |                   
  expressionProperty.ts      |   68.29 |    63.33 |     100 |   68.29 | 62-78,91,126-127  
  index.ts                   |     100 |      100 |     100 |     100 |                   
  intExpression.ts           |     100 |      100 |     100 |     100 |                   
  numberExpression.ts        |     100 |      100 |     100 |     100 |                   
  objectExpression.ts        |     100 |      100 |     100 |     100 |                   
  stringExpression.ts        |   81.25 |       75 |     100 |   81.25 | 42-43,52          
  valueExpression.ts         |   92.31 |    83.33 |     100 |   92.31 | 46                
 ...e-expressions/src/memory |    82.8 |       75 |   94.12 |   82.61 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  simpleObjectMemory.ts      |   83.12 |    74.14 |     100 |   82.89 | ...32,136,141,172 
  stackedMemory.ts           |   78.57 |    83.33 |      75 |   78.57 | 29,37-42          
 ...e-expressions/src/parser |   96.69 |    87.88 |   96.15 |   96.64 |                   
  expressionParser.ts        |   98.57 |    90.63 |     100 |   98.55 | 121,140           
  index.ts                   |     100 |      100 |     100 |     100 |                   
  parseErrorListener.ts      |     100 |      100 |     100 |     100 |                   
  util.ts                    |      25 |        0 |       0 |      25 | 18-22             
 ...essions/src/triggerTrees |   76.98 |       75 |   79.37 |   77.48 |                   
  clause.ts                  |   73.72 |    70.37 |   77.78 |   73.53 | ...44,258-259,283 
  index.ts                   |     100 |      100 |     100 |     100 |                   
  node.ts                    |   98.86 |    91.86 |      90 |    98.8 | 57,83             
  quantifier.ts              |      50 |      100 |   33.33 |   66.67 | 34-40             
  relationshipType.ts        |     100 |      100 |     100 |     100 |                   
  trigger.ts                 |   62.35 |    63.56 |   80.95 |   62.83 | ...48,355-483,495 
  triggerTree.ts             |   80.39 |    84.21 |   66.67 |   79.59 | ...05,133,151-155 
 ...lder-ai-orchestrator/src |   68.15 |    43.08 |   63.64 |   67.11 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  ...orAdaptiveRecognizer.ts |   73.44 |    43.08 |    87.5 |   73.02 | ...56,271,288-321 
  ...omponentRegistration.ts |      75 |      100 |       0 |      75 | 14                
  orchestratorRecognizer.ts  |   21.05 |      100 |       0 |   21.05 | 20-68             
 botbuilder-ai/src           |   79.56 |    74.46 |    81.4 |   79.49 |                   
  geographyV2.ts             |     100 |      100 |     100 |     100 |                   
  globals.ts                 |     100 |       75 |     100 |     100 | 17                
  index.ts                   |     100 |      100 |     100 |     100 |                   
  luisRecognizer.ts          |   89.32 |    85.71 |   86.67 |   89.32 | 531,583,610-625   
  luisRecognizerOptions.ts   |      80 |       75 |     100 |      80 | 23                
  luisRecognizerOptionsV2.ts |   98.54 |    92.86 |     100 |    98.5 | 78,291            
  luisRecognizerOptionsV3.ts |   95.54 |    85.71 |     100 |   95.54 | 66,79-81,258      
  luisTelemetryConstants.ts  |     100 |      100 |     100 |     100 |                   
  ordinalV2.ts               |     100 |      100 |     100 |     100 |                   
  qnaCardBuilder.ts          |     8.7 |        0 |       0 |     8.7 | 26-82             
  qnaMaker.ts                |   98.92 |    94.55 |     100 |   98.92 | 183               
  qnaMakerDialog.ts          |   34.01 |    22.22 |   23.08 |   34.25 | 192-421,452,464   
  qnaTelemetryConstants.ts   |     100 |      100 |     100 |     100 |                   
 .../src/qnamaker-interfaces |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  joinOperator.ts            |     100 |      100 |     100 |     100 |                   
  rankerTypes.ts             |     100 |      100 |     100 |     100 |                   
 ...er-ai/src/qnamaker-utils |   90.91 |    74.51 |   95.24 |   90.38 |                   
  activeLearningUtils.ts     |   83.33 |    71.43 |     100 |   82.61 | 37,41,48-49       
  generateAnswerUtils.ts     |   95.24 |    78.26 |   91.67 |   95.12 | 53-55             
  httpRequestUtils.ts        |    87.5 |     62.5 |     100 |    87.5 | 40,44,48          
  index.ts                   |     100 |      100 |     100 |     100 |                   
  trainUtils.ts              |   91.67 |    83.33 |     100 |   91.67 | 36                
 ...-applicationinsights/src |     100 |      100 |     100 |     100 |                   
  ...ightsTelemetryClient.ts |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  ...nitializerMiddleware.ts |     100 |      100 |     100 |     100 |                   
 botbuilder-azure/src        |   86.85 |    72.03 |   93.89 |   86.86 |                   
  ...eBlobTranscriptStore.ts |   84.38 |    66.07 |   92.59 |    84.8 | ...75,283,287,317 
  blobStorage.ts             |    91.3 |    79.41 |   90.91 |   91.57 | ...68,285,295,344 
  cosmosDbKeyEscape.ts       |   92.59 |     87.5 |     100 |   92.31 | 37,62             
  ...DbPartitionedStorage.ts |   79.21 |    59.65 |   94.74 |      79 | ...87,324-338,371 
  cosmosDbStorage.ts         |   90.57 |    80.28 |   96.88 |   90.48 | ...74,404,407,416 
  doOnce.ts                  |     100 |       50 |     100 |     100 | 23                
  index.ts                   |     100 |      100 |     100 |     100 |                   
 botbuilder-core/src         |   95.28 |    87.33 |   93.62 |   95.21 |                   
  activityFactory.ts         |    96.2 |    83.33 |     100 |   96.08 | ...73,398,406,415 
  activityHandler.ts         |   95.88 |    89.47 |   98.31 |   95.51 | 477,492,854,859   
  activityHandlerBase.ts     |   81.97 |    93.33 |   42.11 |   81.97 | ...40-253,281-329 
  adapterExtensions.ts       |     100 |      100 |     100 |     100 |                   
  autoSaveStateMiddleware.ts |     100 |      100 |     100 |     100 |                   
  botAdapter.ts              |     100 |      100 |     100 |     100 |                   
  botState.ts                |     100 |    95.45 |     100 |     100 | 161               
  ...tatePropertyAccessor.ts |     100 |      100 |     100 |     100 |                   
  botStateSet.ts             |     100 |      100 |     100 |     100 |                   
  botTelemetryClient.ts      |     100 |      100 |   63.64 |     100 |                   
  browserStorage.ts          |     100 |      100 |     100 |     100 |                   
  cardFactory.ts             |     100 |      100 |     100 |     100 |                   
  componentRegistration.ts   |     100 |      100 |     100 |     100 |                   
  conversationState.ts       |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  memoryStorage.ts           |     100 |      100 |     100 |     100 |                   
  memoryTranscriptStore.ts   |   98.61 |    89.58 |     100 |   98.61 | 214               
  messageFactory.ts          |     100 |      100 |     100 |     100 |                   
  middlewareSet.ts           |     100 |      100 |     100 |     100 |                   
  ...ateConversationState.ts |     100 |      100 |     100 |     100 |                   
  recognizerResult.ts        |      90 |     87.5 |     100 |      90 | 44                
  registerClassMiddleware.ts |     100 |       50 |     100 |     100 | 40                
  showTypingMiddleware.ts    |   90.91 |    80.95 |     100 |      90 | 31,35,57          
  signInConstants.ts         |     100 |      100 |     100 |     100 |                   
  ...nNormalizeMiddleware.ts |   83.33 |       80 |   66.67 |   81.82 | 40-41             
  statusCodes.ts             |     100 |      100 |     100 |     100 |                   
  storage.ts                 |     100 |      100 |     100 |     100 |                   
  stringUtils.ts             |     100 |       75 |     100 |     100 | 16,51             
  telemetryConstants.ts      |     100 |      100 |     100 |     100 |                   
  ...etryLoggerMiddleware.ts |   92.66 |    71.74 |     100 |   92.59 | ...89,295,333,364 
  testAdapter.ts             |   90.12 |    89.31 |   91.04 |   90.25 | ...45,690,861-867 
  transcriptLogger.ts        |   92.98 |    77.27 |   92.86 |   92.86 | 25,185-190        
  turnContext.ts             |     100 |      100 |     100 |     100 |                   
  ...ntextStateCollection.ts |   88.89 |       60 |     100 |   88.89 | 21,28             
  userState.ts               |     100 |      100 |     100 |     100 |                   
  userTokenSettings.ts       |     100 |      100 |     100 |     100 |                   
 botbuilder-core/src/skills  |      70 |      100 |      25 |    62.5 |                   
  constants.ts               |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  ...rsationIdFactoryBase.ts |      40 |      100 |      25 |      40 | 37-55             
 ...ogs-adaptive-testing/src |   97.59 |    76.92 |     100 |   97.56 |                   
  ...omponentRegistration.ts |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  testAction.ts              |     100 |      100 |     100 |     100 |                   
  testRunner.ts              |     100 |      100 |     100 |     100 |                   
  testScript.ts              |      95 |    72.73 |     100 |   94.87 | 33,104            
 ...tive-testing/src/actions |     100 |    77.78 |     100 |     100 |                   
  assertCondition.ts         |     100 |    77.78 |     100 |     100 | 60-61             
  index.ts                   |     100 |      100 |     100 |     100 |                   
 ...-testing/src/testActions |   86.61 |    75.86 |   73.68 |    87.8 |                   
  assertReply.ts             |   92.31 |    93.75 |   66.67 |   92.31 | 38                
  assertReplyActivity.ts     |      84 |    66.67 |      60 |   86.96 | 45,77,86          
  assertReplyOneOf.ts        |   90.48 |    71.43 |   66.67 |      90 | 38,67             
  index.ts                   |     100 |      100 |     100 |     100 |                   
  userActivity.ts            |      75 |       50 |     100 |      75 | 41,52,56-58       
  userConversationUpdate.ts  |     100 |      100 |     100 |     100 |                   
  userDelay.ts               |      80 |      100 |      50 |     100 |                   
  userSays.ts                |   90.91 |       75 |     100 |   90.91 | 41                
  userTyping.ts              |   72.73 |       50 |     100 |   72.73 | 39-41             
 ...sting/src/userTokenMocks |   86.96 |       75 |     100 |   86.96 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  userTokenBasicMock.ts      |     100 |      100 |     100 |     100 |                   
  userTokenMock.ts           |   78.57 |       50 |     100 |   78.57 | 37-41             
 ...der-dialogs-adaptive/src |   63.65 |    42.74 |   66.67 |   64.24 |                   
  actionChangeType.ts        |     100 |      100 |     100 |     100 |                   
  actionContext.ts           |   88.24 |    71.43 |     100 |   87.88 | 75,88-91          
  ...omponentRegistration.ts |     100 |      100 |     100 |     100 |                   
  adaptiveDialog.ts          |   43.29 |    30.46 |      50 |      44 | ...4-742,766-1346 
  adaptiveEvents.ts          |     100 |      100 |     100 |     100 |                   
  ...inDialogDeserializer.ts |     100 |      100 |     100 |     100 |                   
  entityAssignments.ts       |   64.29 |       50 |      60 |   64.29 | 38,46,57-60       
  entityInfo.ts              |      10 |        0 |       0 |   11.11 | 92-136            
  index.ts                   |     100 |      100 |     100 |     100 |                   
  jsonExtensions.ts          |   94.44 |     87.5 |     100 |   94.44 | 18                
  ...eGeneratorExtensions.ts |      85 |     62.5 |      50 |      85 | 53,74-75          
  languagePolicy.ts          |   89.66 |    63.64 |      75 |   92.86 | 894,910           
  languageResourceLoader.ts  |   81.18 |    70.59 |     100 |   81.18 | ...46,159,164,172 
  propertySchema.ts          |     100 |    83.33 |     100 |     100 | 24                
  resourceExtensions.ts      |     100 |      100 |     100 |     100 |                   
  schemaHelper.ts            |     100 |    89.66 |     100 |     100 | 37-47,64          
  skillExtensions.ts         |     100 |      100 |     100 |     100 |                   
  telemetryExtensions.ts     |      40 |      100 |       0 |      40 | 25-27             
  triggerSelector.ts         |     100 |      100 |     100 |     100 |                   
 ...ogs-adaptive/src/actions |   81.07 |    60.83 |   90.05 |   80.96 |                   
  actionScope.ts             |   97.01 |    91.89 |     100 |   96.92 | 77,106            
  baseInvokeDialog.ts        |    77.5 |    72.73 |   85.71 |    77.5 | 41,44,77,96-103   
  beginDialog.ts             |   89.47 |       70 |     100 |   89.47 | 60,68             
  beginSkill.ts              |   54.35 |    41.27 |      40 |   54.35 | ...44,253,267-289 
  breakLoop.ts               |   84.62 |       50 |     100 |   84.62 | 34,42             
  cancelAllDialogs.ts        |     100 |      100 |     100 |     100 |                   
  cancelAllDialogsBase.ts    |   72.41 |    57.69 |     100 |   72.41 | ...-78,98-102,106 
  cancelDialog.ts            |     100 |      100 |     100 |     100 |                   
  case.ts                    |     100 |        0 |     100 |     100 | 12                
  codeAction.ts              |   30.77 |        0 |       0 |   30.77 | 31-52             
  continueLoop.ts            |   84.62 |       50 |     100 |   84.62 | 34,42             
  deleteActivity.ts          |   83.33 |    55.56 |     100 |   83.33 | 36,55,63          
  deleteProperties.ts        |   84.62 |       60 |    87.5 |   86.96 | 40,59,67          
  deleteProperty.ts          |   81.25 |    55.56 |     100 |   81.25 | 40,59,67          
  dynamicBeginDialog.ts      |     100 |      100 |     100 |     100 |                   
  editActions.ts             |   84.38 |    57.14 |     100 |   83.87 | 47,50,76,88,110   
  editArray.ts               |   81.54 |    60.98 |     100 |   81.25 | ...16,120,171,182 
  emitEvent.ts               |   83.87 |     62.5 |     100 |   83.87 | 42,45,79,87,109   
  endDialog.ts               |   84.62 |    64.71 |     100 |   84.62 | 41,60,68,90       
  endTurn.ts                 |   81.25 |       50 |     100 |   81.25 | 34,42,52          
  forEach.ts                 |   88.89 |    66.67 |     100 |   88.89 | 37,40,73,85       
  forEachPage.ts             |   78.18 |    62.07 |      80 |   77.78 | ...12-116,148-155 
  getActivityMembers.ts      |   62.96 |       50 |     100 |   62.96 | ...74,79-80,85-87 
  getConversationMembers.ts  |   71.43 |    61.54 |     100 |   71.43 | 47,66,74,79-81    
  gotoAction.ts              |   78.95 |    54.55 |     100 |   78.95 | 37,56,64,68       
  httpRequest.ts             |   90.43 |    65.96 |     100 |   90.43 | ...28,237,314,323 
  ifCondition.ts             |      90 |    76.92 |     100 |   89.74 | 38,41,73,105      
  index.ts                   |     100 |      100 |     100 |     100 |                   
  logAction.ts               |   58.82 |    42.31 |      50 |   58.82 | ...14,118-125,132 
  repeatDialog.ts            |    87.5 |    69.23 |     100 |    87.5 | 38,48,57          
  replaceDialog.ts           |   86.67 |       50 |     100 |   86.67 | 38,46             
  sendActivity.ts            |    93.1 |    83.33 |     100 |    93.1 | 42,77             
  setProperties.ts           |   90.63 |    53.33 |     100 |   90.32 | 62,81,89          
  setProperty.ts             |   78.57 |    61.11 |     100 |   78.57 | 41,44,70,78,82,85 
  signOutUser.ts             |      72 |       50 |     100 |      72 | ...62,66,74,79,88 
  switchCondition.ts         |   88.73 |    70.27 |     100 |   88.41 | ...25,147-154,196 
  ...etryTrackEventAction.ts |   66.67 |       30 |   33.33 |   66.67 | ...,88-96,102,120 
  traceActivity.ts           |   78.79 |    70.59 |     100 |   78.79 | ...9,52,90-92,100 
  updateActivity.ts          |   84.85 |    58.33 |     100 |   84.85 | 50,79,87,91,122   
 ...-adaptive/src/conditions |   84.89 |    67.11 |   78.72 |   84.89 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  onActivity.ts              |     100 |      100 |     100 |     100 |                   
  onAssignEntity.ts          |   33.33 |        0 |       0 |   33.33 | 32-65             
  onBeginDialog.ts           |     100 |      100 |     100 |     100 |                   
  onCancelDialog.ts          |     100 |      100 |     100 |     100 |                   
  onChooseEntity.ts          |      40 |        0 |       0 |      40 | 25-49             
  onChooseIntent.ts          |     100 |      100 |     100 |     100 |                   
  onChooseProperty.ts        |      40 |        0 |       0 |      40 | 25-57             
  onCondition.ts             |   86.67 |       80 |      90 |   86.67 | 129,134,187-193   
  ...sationUpdateActivity.ts |     100 |      100 |     100 |     100 |                   
  onDialogEvent.ts           |     100 |      100 |     100 |     100 |                   
  onEndOfActions.ts          |      80 |        0 |       0 |      80 | 25                
  ...ConversationActivity.ts |     100 |      100 |     100 |     100 |                   
  onError.ts                 |     100 |      100 |     100 |     100 |                   
  onEventActivity.ts         |     100 |      100 |     100 |     100 |                   
  onHandoffActivity.ts       |     100 |      100 |     100 |     100 |                   
  onIntent.ts                |   88.46 |    71.43 |     100 |   88.46 | 54,67,95          
  onInvokeActivity.ts        |     100 |      100 |     100 |     100 |                   
  onMessageActivity.ts       |     100 |      100 |     100 |     100 |                   
  onMessageDeleteActivity.ts |     100 |      100 |     100 |     100 |                   
  ...sageReactionActivity.ts |     100 |      100 |     100 |     100 |                   
  onMessageUpdateActivity.ts |     100 |      100 |     100 |     100 |                   
  onQnAMatch.ts              |     100 |      100 |     100 |     100 |                   
  onRepromptDialog.ts        |     100 |      100 |     100 |     100 |                   
  onTypingActivity.ts        |     100 |      100 |     100 |     100 |                   
  onUnknownIntent.ts         |     100 |      100 |     100 |     100 |                   
 ...-adaptive/src/converters |   91.94 |    69.23 |   93.75 |   91.94 |                   
  ...ityTemplateConverter.ts |   85.71 |    83.33 |     100 |   85.71 | 20                
  ...gExpressionConverter.ts |   83.33 |     62.5 |     100 |   83.33 | 20,29             
  dialogListConverter.ts     |   92.31 |    66.67 |     100 |   92.31 | 24                
  index.ts                   |     100 |      100 |     100 |     100 |                   
  ...geGeneratorConverter.ts |     100 |      100 |     100 |     100 |                   
  ...eRecognizerConverter.ts |     100 |      100 |     100 |     100 |                   
  recognizerConverter.ts     |     100 |      100 |     100 |     100 |                   
  textTemplateConverter.ts   |   66.67 |        0 |       0 |   66.67 | 14                
 ...adaptive/src/expressions |     100 |      100 |     100 |     100 |                   
  dialogExpression.ts        |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
 ...-adaptive/src/generators |    88.6 |    75.51 |   83.33 |   89.19 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  ...uageGeneratorManager.ts |   73.33 |    16.67 |    62.5 |   75.86 | 41-47,83          
  multiLanguageGenerator.ts  |   85.71 |       50 |     100 |   85.71 | 37                
  ...anguageGeneratorBase.ts |   91.18 |       85 |     100 |   90.63 | 85,97,109         
  ...ltiLanguageGenerator.ts |     100 |      100 |     100 |     100 |                   
  ...ineLanguageGenerator.ts |    96.3 |       80 |     100 |    96.3 | 40                
 ...alogs-adaptive/src/input |   77.05 |    63.61 |    79.1 |   77.28 |                   
  ask.ts                     |   17.24 |        0 |       0 |   18.52 | 44-102            
  attachmentInput.ts         |     100 |    88.24 |     100 |     100 | 45,47             
  choiceInput.ts             |   88.89 |    68.42 |     100 |   88.89 | ...16-118,127,173 
  choiceSet.ts               |     100 |    66.67 |     100 |     100 | 13,19             
  confirmInput.ts            |   93.88 |    80.56 |     100 |   93.88 | 115,119,174       
  dateTimeInput.ts           |   90.48 |    71.43 |     100 |   90.48 | 28,54             
  index.ts                   |     100 |      100 |     100 |     100 |                   
  inputDialog.ts             |   84.66 |    76.07 |   91.67 |   84.57 | ...78,382,386,414 
  numberInput.ts             |   95.65 |    81.25 |     100 |   95.65 | 35                
  oauthInput.ts              |   61.58 |    46.04 |      70 |   61.58 | ...22,531,539,551 
  textInput.ts               |     100 |     87.5 |     100 |     100 | 45                
 ...ialogs-adaptive/src/luis |   92.16 |    68.75 |     100 |   92.16 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  luisAdaptiveRecognizer.ts  |      92 |    68.75 |     100 |      92 | 90,108,191,196    
 ...gs-adaptive/src/qnaMaker |   86.36 |    78.18 |     100 |   86.15 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  qnaMakerRecognizer.ts      |   86.15 |    78.18 |     100 |   85.94 | 125,131-143,205   
 ...adaptive/src/recognizers |   95.83 |    85.62 |    97.3 |   95.68 |                   
  ...TrainedRecognizerSet.ts |   95.83 |    91.67 |     100 |   95.65 | 60,190-194        
  index.ts                   |     100 |      100 |     100 |     100 |                   
  intentPattern.ts           |     100 |       75 |     100 |     100 | 13-28             
  multiLanguageRecognizer.ts |   86.21 |    66.67 |     100 |   84.62 | 30,75-87          
  recognizer.ts              |   89.66 |    83.33 |    87.5 |   89.66 | 63,134,137        
  recognizerSet.ts           |   95.65 |    92.86 |     100 |   95.56 | 62,70             
  regexRecognizer.ts         |     100 |     87.5 |     100 |     100 | 24,100,110-127    
  valueRecognizer.ts         |     100 |       80 |     100 |     100 | 26,33             
 ...nizers/entityRecognizers |   95.48 |    76.47 |   96.15 |   95.35 |                   
  ageEntityRecognizer.ts     |     100 |      100 |     100 |     100 |                   
  ...tionEntityRecognizer.ts |     100 |      100 |     100 |     100 |                   
  ...encyEntityRecognizer.ts |     100 |      100 |     100 |     100 |                   
  ...TimeEntityRecognizer.ts |     100 |      100 |     100 |     100 |                   
  ...sionEntityRecognizer.ts |     100 |      100 |     100 |     100 |                   
  emailEntityRecognizer.ts   |     100 |      100 |     100 |     100 |                   
  entityRecognizerSet.ts     |      75 |    42.86 |     100 |   73.08 | 25-30,57          
  guidEntityRecognizer.ts    |     100 |      100 |     100 |     100 |                   
  hashtagEntityRecognizer.ts |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  ipEntityRecognizer.ts      |     100 |      100 |     100 |     100 |                   
  mentionEntityRecognizer.ts |     100 |      100 |     100 |     100 |                   
  numberEntityRecognizer.ts  |     100 |      100 |     100 |     100 |                   
  ordinalEntityRecognizer.ts |     100 |      100 |     100 |     100 |                   
  ...tageEntityRecognizer.ts |     100 |      100 |     100 |     100 |                   
  ...mberEntityRecognizer.ts |     100 |      100 |     100 |     100 |                   
  regexEntityRecognizer.ts   |   96.15 |      100 |      75 |      96 | 34                
  ...tureEntityRecognizer.ts |     100 |      100 |     100 |     100 |                   
  textEntity.ts              |     100 |      100 |     100 |     100 |                   
  textEntityRecognizer.ts    |     100 |      100 |     100 |     100 |                   
  urlEntityRecognizer.ts     |     100 |      100 |     100 |     100 |                   
 ...s-adaptive/src/selectors |   99.07 |     97.5 |     100 |   99.02 |                   
  conditionalSelector.ts     |     100 |      100 |     100 |     100 |                   
  firstSelector.ts           |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  mostSpecificSelector.ts    |     100 |      100 |     100 |     100 |                   
  randomSelector.ts          |     100 |      100 |     100 |     100 |                   
  trueSelector.ts            |   94.44 |    83.33 |     100 |   94.12 | 44                
 ...s-adaptive/src/templates |     100 |       90 |     100 |     100 |                   
  activityTemplate.ts        |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  staticActivityTemplate.ts  |     100 |      100 |     100 |     100 |                   
  textTemplate.ts            |     100 |    83.33 |     100 |     100 | 45                
 ...-dialogs-declarative/src |     100 |      100 |     100 |     100 |                   
  defaultLoader.ts           |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  pathUtil.ts                |     100 |      100 |     100 |     100 |                   
 ...eclarative/src/resources |   95.74 |    76.56 |   97.92 |   95.63 |                   
  fileResource.ts            |     100 |      100 |     100 |     100 |                   
  folderResourceProvider.ts  |     100 |    72.73 |     100 |     100 | 34-35,46,126-137  
  index.ts                   |     100 |      100 |     100 |     100 |                   
  resource.ts                |     100 |      100 |     100 |     100 |                   
  resourceExplorer.ts        |   92.16 |    78.95 |   96.15 |   91.84 | 171-178,193,238   
  resourceProvider.ts        |     100 |       75 |     100 |     100 | 89                
 botbuilder-dialogs/src      |    91.3 |    84.08 |   94.02 |   91.15 |                   
  componentDialog.ts         |   87.76 |    85.71 |   92.31 |   87.76 | 120-133,251-252   
  configurable.ts            |   10.53 |        0 |      50 |   10.53 | 20-46             
  dialog.ts                  |   92.11 |      100 |      75 |   92.11 | 346-376,484       
  dialogContainer.ts         |     100 |      100 |     100 |     100 |                   
  dialogContext.ts           |   98.31 |    90.28 |     100 |   98.29 | 446,508           
  dialogContextError.ts      |   84.62 |     87.5 |     100 |   84.62 | 28,32             
  dialogEvents.ts            |     100 |      100 |     100 |     100 |                   
  dialogHelper.ts            |   82.54 |    83.33 |     100 |   82.54 | 56-67,72-78       
  dialogManager.ts           |   94.39 |    87.23 |   91.67 |   94.39 | ...52,174,225,328 
  dialogSet.ts               |   97.56 |    88.89 |     100 |   97.56 | 122               
  ...ogTurnStateConstants.ts |     100 |      100 |     100 |     100 |                   
  i18n.ts                    |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  skillDialog.ts             |   88.68 |    84.21 |     100 |   88.57 | ...53,239,317,379 
  waterfallDialog.ts         |     100 |       95 |     100 |     100 | 285               
  waterfallStepContext.ts    |     100 |      100 |     100 |     100 |                   
 ...lder-dialogs/src/choices |    99.1 |     85.8 |   97.62 |   99.53 |                   
  channel.ts                 |   95.45 |    77.78 |     100 |   95.45 | 69                
  choiceFactory.ts           |     100 |    82.86 |     100 |     100 | ...86,190-235,287 
  findChoices.ts             |   93.75 |    86.67 |      80 |     100 | 142,151           
  findValues.ts              |     100 |    92.59 |     100 |     100 | 123,181           
  index.ts                   |     100 |      100 |     100 |     100 |                   
  recognizeChoices.ts        |     100 |    93.75 |     100 |     100 | 83                
  tokenizer.ts               |     100 |    90.48 |     100 |     100 | 86-91             
 ...ilder-dialogs/src/memory |   95.79 |    94.12 |   95.83 |   96.01 |                   
  dialogPath.ts              |     100 |      100 |     100 |     100 |                   
  dialogStateManager.ts      |    95.1 |    94.12 |   95.83 |   95.34 | ...13,523,531,537 
  index.ts                   |     100 |      100 |     100 |     100 |                   
  scopePath.ts               |     100 |      100 |     100 |     100 |                   
  thisPath.ts                |     100 |      100 |     100 |     100 |                   
  turnPath.ts                |     100 |      100 |     100 |     100 |                   
 ...src/memory/pathResolvers |   97.92 |    93.33 |     100 |   97.87 |                   
  aliasPathResolver.ts       |      90 |    83.33 |     100 |      90 | 31                
  atAtPathResolver.ts        |     100 |      100 |     100 |     100 |                   
  atPathResolver.ts          |     100 |      100 |     100 |     100 |                   
  dollarPathResolver.ts      |     100 |      100 |     100 |     100 |                   
  hashPathResolver.ts        |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  percentPathResolver.ts     |     100 |      100 |     100 |     100 |                   
 ...ialogs/src/memory/scopes |   87.97 |    74.29 |   90.32 |   87.97 |                   
  botStateMemoryScope.ts     |   72.22 |       80 |   66.67 |   72.22 | 45-49,67          
  classMemoryScope.ts        |      95 |    73.33 |     100 |      95 | 46                
  conversationMemoryScope.ts |     100 |      100 |     100 |     100 |                   
  dialogClassMemoryScope.ts  |   35.71 |        0 |      50 |   35.71 | 24-39             
  dialogMemoryScope.ts       |   95.45 |       95 |     100 |   95.45 | 49                
  index.ts                   |     100 |      100 |     100 |     100 |                   
  memoryScope.ts             |     100 |      100 |     100 |     100 |                   
  settingsMemoryScope.ts     |     100 |       75 |     100 |     100 | 26                
  thisMemoryScope.ts         |     100 |      100 |     100 |     100 |                   
  turnMemoryScope.ts         |     100 |      100 |     100 |     100 |                   
  userMemoryScope.ts         |     100 |      100 |     100 |     100 |                   
 ...lder-dialogs/src/prompts |   90.84 |    85.09 |   94.37 |    90.7 |                   
  activityPrompt.ts          |   94.12 |    79.17 |     100 |   94.12 | 35,38             
  attachmentPrompt.ts        |     100 |      100 |     100 |     100 |                   
  choicePrompt.ts            |     100 |    97.56 |     100 |     100 | 143               
  confirmPrompt.ts           |     100 |      100 |     100 |     100 |                   
  datetimePrompt.ts          |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  numberPrompt.ts            |   96.43 |    86.67 |     100 |   96.43 | 73                
  oauthPrompt.ts             |   77.63 |    71.21 |      85 |   77.63 | ...62,579,587,597 
  prompt.ts                  |   90.24 |    85.45 |    87.5 |   90.24 | ...59-270,369,376 
  promptCultureModels.ts     |     100 |      100 |     100 |     100 |                   
  skillsHelpers.ts           |     100 |    96.55 |     100 |     100 | 98                
  textPrompt.ts              |     100 |      100 |     100 |     100 |                   
 botbuilder-lg/src           |    86.3 |    76.99 |   86.09 |   86.31 |                   
  analyzer.ts                |   95.45 |    80.77 |   93.75 |   95.35 | 52,59-62,119      
  analyzerResult.ts          |     100 |      100 |     100 |     100 |                   
  customizedMemory.ts        |   95.45 |    93.75 |      75 |   95.45 | 55                
  diagnostic.ts              |     100 |      100 |     100 |     100 |                   
  errorListener.ts           |     100 |      100 |     100 |     100 |                   
  evaluationOptions.ts       |    87.8 |       90 |     100 |    87.8 | 58-61,93          
  evaluationTarget.ts        |     100 |       50 |     100 |     100 | 40                
  evaluator.ts               |   93.13 |    80.84 |   93.33 |   92.88 | ...01,638,650,673 
  expander.ts                |   81.05 |    69.44 |   79.59 |    81.1 | ...78,685,695,699 
  extractor.ts               |    4.05 |        0 |       0 |    4.11 | 23-148            
  index.ts                   |     100 |      100 |     100 |     100 |                   
  lgResource.ts              |     100 |      100 |     100 |     100 |                   
  multiLanguageLG.ts         |    4.44 |        0 |       0 |    4.44 | 19-964            
  position.ts                |     100 |      100 |     100 |     100 |                   
  range.ts                   |     100 |    83.33 |     100 |     100 | 25-33             
  sourceRange.ts             |   90.91 |     62.5 |     100 |   90.91 | 32                
  staticChecker.ts           |   99.38 |    95.83 |     100 |   99.38 | 105               
  template.ts                |   83.33 |    66.67 |      50 |   83.33 | 43                
  templateErrors.ts          |   98.21 |      100 |   92.86 |     100 |                   
  templateException.ts       |     100 |      100 |     100 |     100 |                   
  templateExtensions.ts      |   89.23 |       80 |     100 |   89.23 | 50,79-83,149,166  
  templateImport.ts          |   83.33 |      100 |      50 |     100 |                   
  templates.ts               |    97.4 |    85.15 |   94.12 |    97.7 | ...86,428,501,517 
  templatesParser.ts         |   93.63 |    78.75 |      92 |   93.53 | ...68,306-315,423 
 botbuilder-testing/src      |   91.67 |    81.25 |   93.75 |   91.53 |                   
  dialogTestClient.ts        |   92.86 |       90 |     100 |   92.59 | 89-90             
  dialogTestLogger.ts        |      90 |    66.67 |   85.71 |      90 | 33-37             
  index.ts                   |     100 |      100 |     100 |     100 |                   
 botbuilder/src              |   94.47 |       88 |   98.02 |   94.56 |                   
  activityValidator.ts       |     100 |      100 |     100 |     100 |                   
  botFrameworkAdapter.ts     |   91.61 |    88.05 |   98.11 |    92.2 | ...1778,1808-1821 
  botFrameworkHttpClient.ts  |   96.23 |    81.82 |     100 |   96.23 | 82,139            
  channelServiceHandler.ts   |     100 |    83.33 |     100 |     100 | 423,517           
  channelServiceRoutes.ts    |      88 |    75.36 |   94.83 |      88 | ...24,337,349-363 
  eventFactory.ts            |     100 |       90 |     100 |     100 | 42                
  fileTranscriptStore.ts     |   98.78 |    94.87 |     100 |   98.75 | 197               
  handoffEventNames.ts       |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  inspectionMiddleware.ts    |    99.3 |    86.54 |     100 |   99.28 | 289               
  routeConstants.ts          |     100 |      100 |     100 |     100 |                   
  statusCodeError.ts         |     100 |      100 |     100 |     100 |                   
  teamsActivityHandler.ts    |     100 |      100 |     100 |     100 |                   
  teamsActivityHelpers.ts    |     100 |       90 |     100 |     100 | 31,61             
  teamsInfo.ts               |   86.05 |    84.29 |    87.5 |   86.05 | 98-108,137-146    
 botbuilder/src/skills       |      82 |    51.52 |   91.67 |   81.82 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  skillHandler.ts            |      96 |    78.95 |     100 |   95.95 | 70,190,195        
  skillHttpClient.ts         |   34.78 |    14.29 |      50 |   34.78 | 83-123            
 botbuilder/src/streaming    |   95.71 |     77.5 |   85.71 |   95.45 |                   
  constants.ts               |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  streamingHttpClient.ts     |   92.86 |       75 |     100 |   92.86 | 48                
  tokenResolver.ts           |   95.83 |    78.13 |   81.82 |   95.45 | 38,94             
 botframework-config/src     |   94.07 |    83.62 |   97.44 |   94.36 |                   
  botConfiguration.ts        |   94.96 |    79.07 |     100 |   95.76 | 68,88,274-276     
  botConfigurationBase.ts    |   89.02 |    79.55 |   92.31 |   88.89 | ...08,143,182,198 
  botRecipe.ts               |     100 |      100 |     100 |     100 |                   
  encrypt.ts                 |    97.5 |    95.45 |     100 |    97.5 | 81                
  index.ts                   |     100 |      100 |     100 |     100 |                   
  schema.ts                  |     100 |      100 |     100 |     100 |                   
 ...mework-config/src/models |   99.28 |    67.62 |     100 |   99.21 |                   
  appInsightsService.ts      |     100 |       60 |     100 |     100 | 34-56             
  azureService.ts            |     100 |        0 |     100 |     100 | 40                
  blobStorageService.ts      |     100 |    66.67 |     100 |     100 | 29-40             
  botService.ts              |     100 |        0 |     100 |     100 | 24                
  connectedService.ts        |     100 |    66.67 |     100 |     100 | 29                
  cosmosDbService.ts         |     100 |    66.67 |     100 |     100 | 39-52             
  dispatchService.ts         |     100 |    33.33 |     100 |     100 | 24-26             
  endpointService.ts         |     100 |       75 |     100 |     100 | 46-52             
  fileService.ts             |     100 |        0 |     100 |     100 | 24                
  genericService.ts          |     100 |       40 |     100 |     100 | 29-44             
  index.ts                   |     100 |      100 |     100 |     100 |                   
  luisService.ts             |      95 |    79.31 |     100 |      95 | 63                
  qnaMakerService.ts         |     100 |    76.19 |     100 |     100 | 40,54-69          
 botframework-connector/src  |   64.71 |        0 |       0 |   53.85 |                   
  emulatorApiClient.ts       |      25 |        0 |       0 |      25 | 18-34             
  index.ts                   |     100 |      100 |     100 |     100 |                   
 ...ework-connector/src/auth |   83.46 |    71.33 |   89.29 |   83.21 |                   
  appCredentials.ts          |   88.46 |    65.38 |     100 |   88.46 | 107,136-140,166   
  ...icationConfiguration.ts |     100 |      100 |     100 |     100 |                   
  authenticationConstants.ts |     100 |      100 |     100 |     100 |                   
  authenticationError.ts     |     100 |    83.33 |     100 |     100 | 23-31             
  ...ficateAppCredentials.ts |   41.67 |        0 |      25 |   41.67 | 32-49             
  channelValidation.ts       |   80.77 |    77.78 |      75 |   80.77 | 47-55             
  claimsIdentity.ts          |     100 |      100 |     100 |     100 |                   
  credentialProvider.ts      |     100 |      100 |     100 |     100 |                   
  emulatorValidation.ts      |   72.73 |    58.97 |     100 |   72.73 | ...46,162,169-183 
  endorsementsValidator.ts   |     100 |      100 |     100 |     100 |                   
  ...iseChannelValidation.ts |   72.41 |    70.59 |      50 |   72.41 | 44-57,74-91       
  ...entChannelValidation.ts |   68.97 |    64.71 |      50 |   68.97 | 45-53,71-83,98    
  governmentConstants.ts     |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  jwtTokenExtractor.ts       |   69.35 |    48.48 |    87.5 |   69.35 | ...33,144,160-161 
  jwtTokenValidation.ts      |   88.46 |    78.18 |     100 |      88 | 123,134-158,174   
  microsoftAppCredentials.ts |     100 |       75 |     100 |     100 | 24                
  openIdMetadata.ts          |   86.84 |    72.22 |     100 |   86.84 | 36,61-67,76,83    
  skillValidation.ts         |      90 |    91.43 |     100 |   89.66 | 136-156           
 ...nnector/src/connectorApi |   96.15 |    90.91 |     100 |   95.65 |                   
  connectorClient.ts         |     100 |      100 |     100 |     100 |                   
  connectorClientContext.ts  |   92.86 |    90.91 |     100 |   92.86 | 23                
 .../src/connectorApi/models |     100 |      100 |     100 |     100 |                   
  attachmentsMappers.ts      |     100 |      100 |     100 |     100 |                   
  conversationsMappers.ts    |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  mappers.ts                 |     100 |      100 |     100 |     100 |                   
  parameters.ts              |     100 |      100 |     100 |     100 |                   
 .../connectorApi/operations |   90.91 |      100 |   76.47 |   90.91 |                   
  attachments.ts             |     100 |      100 |     100 |     100 |                   
  conversations.ts           |    87.5 |      100 |   71.43 |    87.5 | 52,180,399-435    
  index.ts                   |     100 |      100 |     100 |     100 |                   
 ...work-connector/src/teams |   95.24 |       40 |     100 |   95.24 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  teamsConnectorClient.ts    |     100 |      100 |     100 |     100 |                   
  ...nnectorClientContext.ts |    87.5 |       40 |     100 |    87.5 | 22                
 ...nnector/src/teams/models |     100 |      100 |     100 |     100 |                   
  mappers.ts                 |     100 |      100 |     100 |     100 |                   
  parameters.ts              |     100 |      100 |     100 |     100 |                   
  teamsMappers.ts            |     100 |      100 |     100 |     100 |                   
 ...tor/src/teams/operations |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  teams.ts                   |     100 |      100 |     100 |     100 |                   
 ...k-connector/src/tokenApi |   96.15 |    72.73 |     100 |   96.15 |                   
  tokenApiClient.ts          |     100 |      100 |     100 |     100 |                   
  tokenApiClientContext.ts   |   92.86 |    72.73 |     100 |   92.86 | 27                
 ...ctor/src/tokenApi/models |     100 |      100 |     100 |     100 |                   
  botSignInMappers.ts        |     100 |      100 |     100 |     100 |                   
  mappers.ts                 |     100 |      100 |     100 |     100 |                   
  parameters.ts              |     100 |      100 |     100 |     100 |                   
  userTokenMappers.ts        |     100 |      100 |     100 |     100 |                   
 .../src/tokenApi/operations |      75 |      100 |   22.22 |      75 |                   
  botSignIn.ts               |      80 |      100 |   33.33 |      80 | 44-71             
  index.ts                   |     100 |      100 |     100 |     100 |                   
  userToken.ts               |   68.75 |      100 |   16.67 |   68.75 | 47-173            
 botframework-schema/src     |     100 |    94.55 |     100 |     100 |                   
  activityEx.ts              |     100 |     92.5 |     100 |     100 | 125-126,156       
  callerIdConstants.ts       |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  speechConstants.ts         |     100 |      100 |     100 |     100 |                   
 botframework-streaming/src  |   85.65 |    56.52 |   60.66 |   94.77 |                   
  contentStream.ts           |   70.69 |       40 |   66.67 |   90.48 | 75-78             
  httpContentStream.ts       |     100 |      100 |   83.33 |     100 |                   
  index-browser.ts           |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  protocolAdapter.ts         |   66.67 |    22.22 |   42.86 |   84.38 | 38,52-53,56-58    
  requestHandler.ts          |     100 |      100 |     100 |     100 |                   
  streamingRequest.ts        |     100 |     87.5 |   57.14 |     100 | 77                
  streamingResponse.ts       |     100 |       50 |   57.14 |     100 | 25                
  subscribableStream.ts      |   96.43 |       75 |    62.5 |     100 | 17                
 ...streaming/src/assemblers |   88.41 |    71.43 |   56.52 |     100 |                   
  payloadAssembler.ts        |   88.41 |    71.43 |   56.52 |     100 | 50,62-80,91-93    
 ...eaming/src/disassemblers |   89.02 |    18.18 |   73.08 |     100 |                   
  cancelDisassembler.ts      |     100 |      100 |      75 |     100 |                   
  ...ntStreamDisassembler.ts |   86.67 |        0 |      75 |     100 | 23                
  payloadDisassembler.ts     |   86.36 |        0 |    62.5 |     100 | 41                
  requestDisassembler.ts     |   88.89 |       25 |      80 |     100 | 23-29             
  responseDisassembler.ts    |   88.89 |       25 |      80 |     100 | 23-29             
 ...-streaming/src/namedPipe |   87.34 |    79.71 |   80.65 |   87.34 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  namedPipeClient.ts         |   91.43 |    55.56 |   71.43 |   91.43 | 91,99-102         
  namedPipeServer.ts         |   87.27 |    86.96 |   72.73 |   87.27 | ...87,140,144,149 
  namedPipeTransport.ts      |   84.62 |    81.08 |   92.31 |   84.62 | 41,89,147-158     
 ...ing/src/payloadTransport |   84.62 |    76.19 |    62.5 |   96.97 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  payloadReceiver.ts         |      75 |    64.29 |   58.33 |   94.64 | 113-114,131       
  payloadSender.ts           |     100 |      100 |      60 |     100 |                   
  ...ortDisconnectedEvent.ts |     100 |      100 |     100 |     100 |                   
 ...k-streaming/src/payloads |   94.65 |    83.87 |      64 |     100 |                   
  headerSerializer.ts        |   92.59 |      100 |   57.14 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  payloadAssemblerManager.ts |     100 |    77.78 |    62.5 |     100 | 35,46-50,59       
  payloadConstants.ts        |     100 |      100 |     100 |     100 |                   
  payloadTypes.ts            |     100 |      100 |     100 |     100 |                   
  requestManager.ts          |    96.3 |      100 |   66.67 |     100 |                   
  sendOperations.ts          |   83.87 |    33.33 |   64.29 |     100 | 32-49             
  streamManager.ts           |     100 |    81.82 |      60 |     100 | 55                
 ...-streaming/src/utilities |   77.78 |       45 |   66.67 |   77.78 |                   
  createNodeServer.ts        |   73.33 |       45 |      60 |   73.33 | 22,31,41-45       
  protocol-base.ts           |     100 |      100 |     100 |     100 |                   
 ...-streaming/src/webSocket |   74.71 |    66.67 |   64.29 |   74.39 |                   
  browserWebSocket.ts        |   54.76 |       20 |      60 |   53.66 | ...,78-94,103-104 
  browserWebSocketClient.ts  |   33.33 |        0 |   16.67 |   33.33 | ...74-75,85,89-94 
  index-browser.ts           |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  nodeWebSocket.ts           |   84.85 |       60 |      80 |   84.85 | 49,94-95,136-137  
  nodeWebSocketClient.ts     |   75.86 |    33.33 |      80 |   75.86 | 66-68,93-98       
  webSocketServer.ts         |     100 |      100 |     100 |     100 |                   
  webSocketTransport.ts      |   84.72 |    84.85 |   54.55 |   85.71 | ...42-145,155-156 
 .../src/webSocket/factories |     100 |      100 |     100 |     100 |                   
  index.ts                   |     100 |      100 |     100 |     100 |                   
  nodeWebSocketFactory.ts    |     100 |      100 |     100 |     100 |                   
  ...WebSocketFactoryBase.ts |     100 |      100 |     100 |     100 |                   
-----------------------------|---------|----------|---------|---------|-------------------

@boneskull boneskull reopened this Oct 20, 2020
@mdrichardson
Copy link

@boneskull Alright, I'll give that a go. Thanks again!!!!

@boneskull
Copy link
Member

I can't make it break... maybe there's something else about your setup. what node/npm version, os?

@mdrichardson
Copy link

Yeah, I suspected it could be something like that. Testing now, but:

  • Windows
  • Node v12.16.1 (I think worker threads are still in beta here?)
  • npm v 6.13.4

@mdrichardson
Copy link

@boneskull Hmm...I tried everything again w/ Node v12.16.1 (original), v12.19.0, and v15.0.0 (and relevant npm version) and still don't get the coverage report. I also went in and deleted %appdata%/npm/node_modules.

I know if you can't repro, it's pretty much impossible for you to do much about it. Any troubleshooting steps you'd recommend on my end?

@boneskull
Copy link
Member

I'll try it on Windows. using powershell or something else?

@mdrichardson
Copy link

I was using command prompt, but I'll try bash and powershell

@mdrichardson
Copy link

@boneskull Worked in bash, but not command prompt or Powershell

@boneskull
Copy link
Member

OK, that's good to know. I can reproduce in Powershell. is the problem mocha's or nyc's? hmmm...

@boneskull boneskull reopened this Oct 20, 2020
@boneskull boneskull changed the title nyc reports no coverage in parallel mode nyc reports no coverage in parallel mode in powershell/cmd Oct 20, 2020
@boneskull boneskull added area: windows Windows-specific area: node.js command-line-or-Node.js-specific labels Oct 20, 2020
@boneskull
Copy link
Member

boneskull commented Oct 20, 2020

I've narrowed it down; see https://github.com/boneskull/mocha-nyc-parallel-issue and the README there

mocha is not actually used in that repo; it's not needed to reproduce. In short: child_process.fork() causes no coverage to be collected (mocha forks worker processes by way of workerpool). I'm not sure if this is something nyc can fix, but I'll dig around. workerpool needs IPC, so I don't see it being able to avoid the fork.

All three methods in that repo work on my mac, but only the last one (using child_process.spawn()) works on my Windows machine

@boneskull
Copy link
Member

OK, I've updated the README in that repo and added an example of fork() which will work to collect coverage. This would be an upstream fix.

@boneskull boneskull added the status: needs upstream fix defect within Mocha's dependency tree label Oct 20, 2020
@boneskull
Copy link
Member

I'll send a PR to workerpool to try to address the issue.

@boneskull
Copy link
Member

also see istanbuljs/nyc#762

@tal-sapan
Copy link

Hi @boneskull, since the fix in workerpool was merged and a version was released, could you please update the dependency in mocha to fix this issue?

Thanks!

tal-sapan added a commit to SAP/vscode-mta-tools that referenced this issue Jan 19, 2021
The unnecessary test fails in environments where mbt is installed,
and it only passed because the check for mbt existance returned false.

Coverage does not work on Windows when Mocha runs in parallel:
mochajs/mocha#4372
tal-sapan added a commit to SAP/vscode-mta-tools that referenced this issue Jan 19, 2021
- Issues in mta.yaml are now marked as errors
- Path validation is removed (since the path can be created during the
  build)
- Yaml syntax highlighting for mtaext files

Fix:
- mta executable is downloaded if not available for the purpose of
  validations (it's still required for generators)

Tests:
- Remove unnecessary test (it failed in environments where mbt is installed)
- Add new test
- Fix coverage on windows (coverage does not work on Windows when 
  mocha runs in parallel: mochajs/mocha#4372)
@juergba
Copy link
Member

juergba commented Apr 2, 2021

The fix in workerpool was released with v6.0.3, Mocha uses v6.1.0.
Closing this issue.

@juergba juergba closed this as completed Apr 2, 2021
@juergba juergba removed the status: needs upstream fix defect within Mocha's dependency tree label Apr 2, 2021
kevinoid added a commit to kevinoid/node-project-template that referenced this issue Apr 22, 2021
mochajs/mocha#4372 was fixed in mocha@8.3.0 by requiring
workerpool@6.1.0, allowing --parallel to be used during coverage
collection again.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: node.js command-line-or-Node.js-specific area: windows Windows-specific type: bug a defect, confirmed by a maintainer
Projects
None yet
Development

No branches or pull requests

8 participants