Closed curbengh closed 3 years ago
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
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,
};
I'm running into this as well. Has anybody found a temporary workaround?
I disable parallel mode in coverage test.
"scripts": {
"test": "mocha test/index.js",
"test-cov": "nyc --reporter=lcovonly npm run test -- --no-parallel",
},
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.
$ ./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 )
================================================================================
$ ./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 )
================================================================================
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)
@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
@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.
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
@boneskull I just did a find/replace w/ regex, as I recall.
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
closed by #4465
@boneskull Awesome. Nice find!
...and yeah, I'm aware of the weirdness ;)
@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.
@boneskull Will do. I believe the event listeners piece, at least is unrelated to mocha
@boneskull I still don't seem to get coverage reporting with botbuilder-js
, when enabling --parallel
. Here are the steps to reproduce:
git clone https://github.com/microsoft/botbuilder-js
cd botbuilder-js
"mocha":\s?"\^?\d\d?\.\d\.?\d?",
with "mocha": "^8.2.0",
"nyc":\s?"\^?\d\d?\.\d\.?\d?"
, with "nyc": "^15.1.0",
npm i -G nyc@latest mocha@latest
npm i
npm run build
--parallel
to package.json > scripts > test-coverage
npm run test-coverage
Am I missing something?
@mdrichardson I'll take a look
main
branch from botbuilder repo into my working copylerna clean -y
then rm -rf node_modules
npm i
and npm run build
test-coverage
to nyc mocha \"libraries/@(adaptive*|bot*)/tests/**/*.test.js\" --exit --check-leaks --parallel
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 Alright, I'll give that a go. Thanks again!!!!
I can't make it break... maybe there's something else about your setup. what node/npm version, os?
Yeah, I suspected it could be something like that. Testing now, but:
@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?
I'll try it on Windows. using powershell or something else?
I was using command prompt, but I'll try bash and powershell
@boneskull Worked in bash, but not command prompt or Powershell
OK, that's good to know. I can reproduce in Powershell. is the problem mocha's or nyc's? hmmm...
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
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.
I'll send a PR to workerpool
to try to address the issue.
also see istanbuljs/nyc#762
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!
The fix in workerpool
was released with v6.0.3, Mocha uses v6.1.0.
Closing this issue.
Cross-posting https://github.com/istanbuljs/nyc/issues/1328 here.
Prerequisites
faq
labelnode node_modules/.bin/mocha --version
(Local) andmocha --version
(Global). We recommend that you not install Mocha globally.Link to bug demonstration repository
https://github.com/hexojs/hexo/pull/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
:Troubleshooting steps
No issue in mocha's default serial mode.
Environment Information
Reproduces how often: [What percentage of the time does it reproduce?] 100%
Versions
mocha --version
andnode node_modules/.bin/mocha --version
: 8.0.1 & 8.0.1node --version
: v12.18.0Additional Information
".mocharc.yml"