Added support for dotnet nunit

This commit is contained in:
Simen Sandvaer 2022-11-06 14:12:13 +01:00
parent c9b3d0e2bd
commit a97564ca53
21 changed files with 3265 additions and 1615 deletions

View file

@ -127,6 +127,7 @@ jobs:
# Format of test results. Supported options:
# dart-json
# dotnet-trx
# dotnet-nunit
# flutter-json
# java-junit
# jest-junit
@ -219,6 +220,15 @@ Supported testing frameworks:
For more information see [dotnet test](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#examples)
</details>
<details>
<summary>dotnet-nunit</summary>
Supports [NUnit 3.0 XML format](https://docs.nunit.org/articles/nunit/technical-notes/usage/Test-Result-XML-Format.html), such as those produced from Unity Test Runner.
Supported testing frameworks:
- [NUnit](https://nunit.org/)
</details>
<details>
<summary>flutter-json</summary>

View file

@ -0,0 +1,72 @@
![Tests failed](https://img.shields.io/badge/tests-13%20passed%2C%202%20failed%2C%203%20skipped-critical)
## ❌ <a id="user-content-r0" href="#r0">fixtures/external/dotnet/nunit-test-results.xml</a>
**18** tests were completed in **154ms** with **13** passed, **2** failed and **3** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
|[mock-assembly.dll](#r0s0)||||NaNms|
|[&nbsp;&nbsp;&nbsp;&nbsp;MockTestFixture](#r0s1)|5✔|2❌|3✖|NaNms|
|[&nbsp;&nbsp;&nbsp;&nbsp;BadFixture](#r0s2)||||NaNms|
|[&nbsp;&nbsp;&nbsp;&nbsp;FixtureWithTestCases](#r0s3)||||NaNms|
|[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MethodWithParameters](#r0s4)|2✔|||NaNms|
|[&nbsp;&nbsp;&nbsp;&nbsp;IgnoredFixture](#r0s5)||||NaNms|
|[&nbsp;&nbsp;&nbsp;&nbsp;ParameterizedFixture](#r0s6)||||NaNms|
|[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ParameterizedFixture(42)](#r0s7)|2✔|||NaNms|
|[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ParameterizedFixture(5)](#r0s8)|2✔|||NaNms|
|[&nbsp;&nbsp;&nbsp;&nbsp;OneTestCase](#r0s9)|1✔|||NaNms|
|[&nbsp;&nbsp;&nbsp;&nbsp;MockTestFixture](#r0s10)|1✔|||NaNms|
### ❌ <a id="user-content-r0s1" href="#r0s1">MockTestFixture</a>
```
FailingTest
❌ FailingTest
Intentional failure
InconclusiveTest
✔️ InconclusiveTest
MockTest1
✔️ MockTest1
MockTest2
✔️ MockTest2
MockTest3
✔️ MockTest3
MockTest4
✖️ MockTest4
MockTest5
✖️ MockTest5
NotRunnableTest
✖️ NotRunnableTest
TestWithException
❌ TestWithException
System.ApplicationException : Intentional Exception
TestWithManyProperties
✔️ TestWithManyProperties
```
### ✔️ <a id="user-content-r0s4" href="#r0s4">MethodWithParameters</a>
```
MethodWithParameters(2,2)
✔️ MethodWithParameters(2,2)
MethodWithParameters(9,11)
✔️ MethodWithParameters(9,11)
```
### ✔️ <a id="user-content-r0s7" href="#r0s7">ParameterizedFixture(42)</a>
```
Test1
✔️ Test1
Test2
✔️ Test2
```
### ✔️ <a id="user-content-r0s8" href="#r0s8">ParameterizedFixture(5)</a>
```
Test1
✔️ Test1
Test2
✔️ Test2
```
### ✔️ <a id="user-content-r0s9" href="#r0s9">OneTestCase</a>
```
TestCase
✔️ TestCase
```
### ✔️ <a id="user-content-r0s10" href="#r0s10">MockTestFixture</a>
```
MyTest
✔️ MyTest
```

View file

@ -3,407 +3,407 @@
**4239** tests were completed in **166s** with **4207** passed, **2** failed and **30** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
|e2e/__tests__/asyncAndCallback.test.ts|1✔|||746ms|
|e2e/__tests__/asyncRegenerator.test.ts|1✔|||4s|
|e2e/__tests__/autoClearMocks.test.ts|2✔|||2s|
|e2e/__tests__/autoResetMocks.test.ts|2✔|||2s|
|e2e/__tests__/autoRestoreMocks.test.ts|2✔|||2s|
|e2e/__tests__/babelPluginJestHoist.test.ts|1✔|||6s|
|e2e/__tests__/badSourceMap.test.ts|1✔|||858ms|
|e2e/__tests__/beforeAllFiltered.ts|1✔|||958ms|
|e2e/__tests__/beforeEachQueue.ts|1✔||1✖|55ms|
|e2e/__tests__/callDoneTwice.test.ts|1✔|||882ms|
|e2e/__tests__/chaiAssertionLibrary.ts|1✔|||2s|
|e2e/__tests__/circularInequality.test.ts|1✔|||1s|
|e2e/__tests__/circusConcurrentEach.test.ts|2✔|||2s|
|e2e/__tests__/circusDeclarationErrors.test.ts|1✔|||869ms|
|e2e/__tests__/clearCache.test.ts|2✔|||1s|
|e2e/__tests__/cliHandlesExactFilenames.test.ts|2✔|||1s|
|e2e/__tests__/compareDomNodes.test.ts|1✔|||1s|
|e2e/__tests__/config.test.ts|6✔|||4s|
|e2e/__tests__/console.test.ts|7✔|||8s|
|e2e/__tests__/consoleAfterTeardown.test.ts|1✔|||1s|
|e2e/__tests__/consoleLogOutputWhenRunInBand.test.ts|1✔|||793ms|
|e2e/__tests__/coverageHandlebars.test.ts|1✔|||2s|
|e2e/__tests__/coverageRemapping.test.ts|1✔|||13s|
|e2e/__tests__/coverageReport.test.ts|12✔|||22s|
|e2e/__tests__/coverageThreshold.test.ts|5✔|||5s|
|e2e/__tests__/coverageTransformInstrumented.test.ts|1✔|||5s|
|e2e/__tests__/coverageWithoutTransform.test.ts|1✔|||1s|
|e2e/__tests__/createProcessObject.test.ts|1✔|||908ms|
|e2e/__tests__/customInlineSnapshotMatchers.test.ts|1✔|||2s|
|e2e/__tests__/customMatcherStackTrace.test.ts|2✔|||2s|
|e2e/__tests__/customReporters.test.ts|9✔|||7s|
|e2e/__tests__/customResolver.test.ts|1✔|||826ms|
|e2e/__tests__/customTestSequencers.test.ts|3✔|||3s|
|e2e/__tests__/debug.test.ts|1✔|||899ms|
|e2e/__tests__/declarationErrors.test.ts|3✔|||2s|
|e2e/__tests__/dependencyClash.test.ts|1✔|||833ms|
|e2e/__tests__/detectOpenHandles.ts|8✔|||8s|
|e2e/__tests__/domDiffing.test.ts|1✔|||1s|
|e2e/__tests__/doneInHooks.test.ts|1✔|||855ms|
|e2e/__tests__/dynamicRequireDependencies.ts|1✔|||847ms|
|e2e/__tests__/each.test.ts|7✔|||5s|
|e2e/__tests__/emptyDescribeWithHooks.test.ts|4✔|||3s|
|e2e/__tests__/emptySuiteError.test.ts|1✔|||885ms|
|e2e/__tests__/env.test.ts|6✔|||5s|
|e2e/__tests__/environmentAfterTeardown.test.ts|1✔|||892ms|
|e2e/__tests__/errorOnDeprecated.test.ts|1✔||24✖|56ms|
|e2e/__tests__/esmConfigFile.test.ts|3✔|||526ms|
|e2e/__tests__/executeTestsOnceInMpr.ts|1✔|||976ms|
|e2e/__tests__/existentRoots.test.ts|4✔|||627ms|
|e2e/__tests__/expectAsyncMatcher.test.ts|2✔|||3s|
|e2e/__tests__/expectInVm.test.ts|1✔|||2s|
|e2e/__tests__/extraGlobals.test.ts|1✔|||1s|
|e2e/__tests__/failureDetailsProperty.test.ts|1✔|||907ms|
|e2e/__tests__/failures.test.ts|7✔|||10s|
|e2e/__tests__/fakePromises.test.ts|2✔|||2s|
|e2e/__tests__/fatalWorkerError.test.ts|1✔|||3s|
|e2e/__tests__/filter.test.ts|7✔|||5s|
|e2e/__tests__/findRelatedFiles.test.ts|5✔|||6s|
|e2e/__tests__/focusedTests.test.ts|1✔|||888ms|
|e2e/__tests__/forceExit.test.ts|1✔|||2s|
|e2e/__tests__/generatorMock.test.ts|1✔|||1s|
|e2e/__tests__/global-mutation.test.ts|1✔|||40ms|
|e2e/__tests__/global.test.ts|1✔|||31ms|
|e2e/__tests__/globals.test.ts|10✔|||8s|
|e2e/__tests__/globalSetup.test.ts|10✔|||14s|
|e2e/__tests__/globalTeardown.test.ts|7✔|||12s|
|e2e/__tests__/hasteMapMockChanged.test.ts|1✔|||379ms|
|e2e/__tests__/hasteMapSha1.test.ts|1✔|||298ms|
|e2e/__tests__/hasteMapSize.test.ts|2✔|||397ms|
|e2e/__tests__/importedGlobals.test.ts|1✔|||1s|
|e2e/__tests__/injectGlobals.test.ts|2✔|||2s|
|e2e/__tests__/jasmineAsync.test.ts|15✔|||28s|
|e2e/__tests__/jasmineAsyncWithPendingDuringTest.ts|1✔||1✖|72ms|
|e2e/__tests__/jest.config.js.test.ts|3✔|||2s|
|e2e/__tests__/jest.config.ts.test.ts|5✔|||14s|
|[e2e/__tests__/jestChangedFiles.test.ts](#r0s75)|9✔|1❌||9s|
|e2e/__tests__/jestEnvironmentJsdom.test.ts|1✔|||2s|
|e2e/__tests__/jestRequireActual.test.ts|1✔|||2s|
|e2e/__tests__/jestRequireMock.test.ts|1✔|||2s|
|e2e/__tests__/json.test.ts|2✔|||29ms|
|e2e/__tests__/jsonReporter.test.ts|2✔|||2s|
|e2e/__tests__/lifecycles.ts|1✔|||861ms|
|e2e/__tests__/listTests.test.ts|2✔|||945ms|
|e2e/__tests__/locationInResults.test.ts|2✔|||2s|
|e2e/__tests__/logHeapUsage.test.ts|1✔|||884ms|
|e2e/__tests__/mockNames.test.ts|8✔|||7s|
|e2e/__tests__/modernFakeTimers.test.ts|2✔|||2s|
|e2e/__tests__/moduleNameMapper.test.ts|5✔|||5s|
|e2e/__tests__/moduleParentNullInTest.ts|1✔|||886ms|
|e2e/__tests__/multiProjectRunner.test.ts|14✔|||16s|
|e2e/__tests__/nativeAsyncMock.test.ts|1✔|||55ms|
|e2e/__tests__/nativeEsm.test.ts|2✔||1✖|905ms|
|e2e/__tests__/nativeEsmTypescript.test.ts|1✔|||956ms|
|e2e/__tests__/nestedEventLoop.test.ts|1✔|||1s|
|e2e/__tests__/nestedTestDefinitions.test.ts|4✔|||5s|
|e2e/__tests__/nodePath.test.ts|1✔|||866ms|
|e2e/__tests__/noTestFound.test.ts|2✔|||1s|
|e2e/__tests__/noTestsFound.test.ts|5✔|||3s|
|[e2e/__tests__/onlyChanged.test.ts](#r0s98)|8✔|1❌||22s|
|e2e/__tests__/onlyFailuresNonWatch.test.ts|1✔|||3s|
|e2e/__tests__/overrideGlobals.test.ts|2✔|||2s|
|e2e/__tests__/pnp.test.ts|1✔|||3s|
|e2e/__tests__/presets.test.ts|2✔|||2s|
|e2e/__tests__/processExit.test.ts|1✔|||1s|
|e2e/__tests__/promiseReject.test.ts|1✔|||967ms|
|e2e/__tests__/regexCharInPath.test.ts|1✔|||962ms|
|e2e/__tests__/requireAfterTeardown.test.ts|1✔|||921ms|
|e2e/__tests__/requireMain.test.ts|1✔|||1s|
|e2e/__tests__/requireMainAfterCreateRequire.test.ts|1✔|||966ms|
|e2e/__tests__/requireMainIsolateModules.test.ts|1✔|||976ms|
|e2e/__tests__/requireMainResetModules.test.ts|2✔|||2s|
|e2e/__tests__/requireV8Module.test.ts|1✔|||30ms|
|e2e/__tests__/resetModules.test.ts|1✔|||926ms|
|e2e/__tests__/resolve.test.ts|1✔|||2s|
|e2e/__tests__/resolveGetPaths.test.ts|1✔|||1s|
|e2e/__tests__/resolveNodeModule.test.ts|1✔|||943ms|
|e2e/__tests__/resolveNoFileExtensions.test.ts|2✔|||1s|
|e2e/__tests__/resolveWithPaths.test.ts|1✔|||1s|
|e2e/__tests__/runProgrammatically.test.ts|2✔|||575ms|
|e2e/__tests__/runTestsByPath.test.ts|1✔|||2s|
|e2e/__tests__/runtimeInternalModuleRegistry.test.ts|1✔|||1s|
|e2e/__tests__/selectProjects.test.ts|18✔|||5s|
|e2e/__tests__/setImmediate.test.ts|1✔|||904ms|
|e2e/__tests__/setupFilesAfterEnvConfig.test.ts|2✔|||2s|
|e2e/__tests__/showConfig.test.ts|1✔|||195ms|
|e2e/__tests__/skipBeforeAfterAll.test.ts|1✔|||1s|
|e2e/__tests__/snapshot-unknown.test.ts|1✔|||838ms|
|e2e/__tests__/snapshot.test.ts|9✔|||14s|
|e2e/__tests__/snapshotMockFs.test.ts|1✔|||883ms|
|e2e/__tests__/snapshotResolver.test.ts|1✔|||823ms|
|e2e/__tests__/snapshotSerializers.test.ts|2✔|||2s|
|e2e/__tests__/stackTrace.test.ts|7✔|||5s|
|e2e/__tests__/stackTraceNoCaptureStackTrace.test.ts|1✔|||899ms|
|e2e/__tests__/stackTraceSourceMaps.test.ts|1✔|||2s|
|e2e/__tests__/stackTraceSourceMapsWithCoverage.test.ts|1✔|||2s|
|e2e/__tests__/supportsDashedArgs.ts|2✔|||968ms|
|e2e/__tests__/symbol.test.ts|1✔|||49ms|
|e2e/__tests__/testEnvironment.test.ts|1✔|||2s|
|e2e/__tests__/testEnvironmentAsync.test.ts|1✔|||1s|
|e2e/__tests__/testEnvironmentCircus.test.ts|1✔|||2s|
|e2e/__tests__/testEnvironmentCircusAsync.test.ts|1✔|||2s|
|e2e/__tests__/testFailureExitCode.test.ts|2✔|||4s|
|e2e/__tests__/testInRoot.test.ts|1✔|||1s|
|e2e/__tests__/testNamePattern.test.ts|1✔|||859ms|
|e2e/__tests__/testNamePatternSkipped.test.ts|1✔|||991ms|
|e2e/__tests__/testPathPatternReporterMessage.test.ts|1✔|||3s|
|e2e/__tests__/testResultsProcessor.test.ts|1✔|||910ms|
|e2e/__tests__/testRetries.test.ts|4✔|||3s|
|e2e/__tests__/testTodo.test.ts|5✔|||4s|
|e2e/__tests__/timeouts.test.ts|4✔|||4s|
|e2e/__tests__/timeoutsLegacy.test.ts|1✔||3✖|71ms|
|e2e/__tests__/timerResetMocks.test.ts|2✔|||2s|
|e2e/__tests__/timerUseRealTimers.test.ts|1✔|||1s|
|e2e/__tests__/toMatchInlineSnapshot.test.ts|12✔|||24s|
|e2e/__tests__/toMatchInlineSnapshotWithRetries.test.ts|3✔|||5s|
|e2e/__tests__/toMatchSnapshot.test.ts|9✔|||17s|
|e2e/__tests__/toMatchSnapshotWithRetries.test.ts|2✔|||4s|
|e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts|3✔|||4s|
|e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts|4✔|||4s|
|e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts|5✔|||4s|
|e2e/__tests__/transform.test.ts|16✔|||27s|
|e2e/__tests__/transformLinkedModules.test.ts|1✔|||783ms|
|e2e/__tests__/typescriptCoverage.test.ts|1✔|||3s|
|e2e/__tests__/unexpectedToken.test.ts|3✔|||3s|
|e2e/__tests__/useStderr.test.ts|1✔|||1s|
|e2e/__tests__/v8Coverage.test.ts|2✔|||2s|
|e2e/__tests__/verbose.test.ts|1✔|||683ms|
|e2e/__tests__/version.test.ts|1✔|||138ms|
|e2e/__tests__/watchModeNoAccess.test.ts|1✔|||4s|
|e2e/__tests__/watchModeOnlyFailed.test.ts|1✔|||1s|
|e2e/__tests__/watchModePatterns.test.ts|2✔|||4s|
|e2e/__tests__/watchModeUpdateSnapshot.test.ts|1✔|||1s|
|e2e/__tests__/workerForceExit.test.ts|2✔|||5s|
|e2e/__tests__/wrongEnv.test.ts|5✔|||4s|
|e2e/custom-test-sequencer/a.test.js|1✔|||29ms|
|e2e/custom-test-sequencer/b.test.js|1✔|||21ms|
|e2e/custom-test-sequencer/c.test.js|1✔|||42ms|
|e2e/custom-test-sequencer/d.test.js|1✔|||21ms|
|e2e/custom-test-sequencer/e.test.js|1✔|||27ms|
|e2e/test-in-root/spec.js|1✔|||19ms|
|e2e/test-in-root/test.js|1✔|||37ms|
|e2e/timer-reset-mocks/after-reset-all-mocks/timerAndMock.test.js|2✔|||30ms|
|e2e/timer-reset-mocks/with-reset-mocks/timerWithMock.test.js|1✔|||34ms|
|e2e/v8-coverage/empty-sourcemap/test.ts|1✔|||31ms|
|examples/angular/app.component.spec.ts|3✔|||654ms|
|examples/angular/shared/data.service.spec.ts|2✔|||431ms|
|examples/angular/shared/sub.service.spec.ts|1✔|||109ms|
|examples/async/__tests__/user.test.js|8✔|||96ms|
|examples/automatic-mocks/__tests__/automock.test.js|2✔|||74ms|
|examples/automatic-mocks/__tests__/createMockFromModule.test.js|2✔|||115ms|
|examples/automatic-mocks/__tests__/disableAutomocking.test.js|1✔|||24ms|
|examples/enzyme/__tests__/CheckboxWithLabel-test.js|1✔|||434ms|
|examples/getting-started/sum.test.js|1✔|||78ms|
|examples/jquery/__tests__/display_user.test.js|1✔|||196ms|
|examples/jquery/__tests__/fetch_current_user.test.js|2✔|||196ms|
|examples/manual-mocks/__tests__/file_summarizer.test.js|1✔|||87ms|
|examples/manual-mocks/__tests__/lodashMocking.test.js|1✔|||109ms|
|examples/manual-mocks/__tests__/user.test.js|1✔|||41ms|
|examples/manual-mocks/__tests__/userMocked.test.js|1✔|||105ms|
|examples/module-mock/__tests__/full_mock.js|1✔|||60ms|
|examples/module-mock/__tests__/mock_per_test.js|2✔|||116ms|
|examples/module-mock/__tests__/partial_mock.js|1✔|||215ms|
|examples/mongodb/__test__/db.test.js|1✔|||236ms|
|examples/react-native/__tests__/intro.test.js|4✔|||9s|
|examples/react-testing-library/__tests__/CheckboxWithLabel-test.js|1✔|||469ms|
|examples/react/__tests__/CheckboxWithLabel-test.js|1✔|||256ms|
|examples/snapshot/__tests__/clock.react.test.js|1✔|||62ms|
|examples/snapshot/__tests__/link.react.test.js|4✔|||181ms|
|examples/timer/__tests__/infinite_timer_game.test.js|1✔|||94ms|
|examples/timer/__tests__/timer_game.test.js|3✔|||74ms|
|examples/typescript/__tests__/calc.test.ts|6✔|||276ms|
|examples/typescript/__tests__/CheckboxWithLabel-test.tsx|1✔|||227ms|
|examples/typescript/__tests__/sub-test.ts|1✔|||43ms|
|examples/typescript/__tests__/sum-test.ts|2✔|||69ms|
|examples/typescript/__tests__/sum.test.js|2✔|||100ms|
|packages/babel-jest/src/__tests__/index.ts|6✔|||371ms|
|packages/babel-plugin-jest-hoist/src/__tests__/hoistPlugin.test.ts|4✔|||347ms|
|packages/diff-sequences/src/__tests__/index.property.test.ts|7✔|||357ms|
|packages/diff-sequences/src/__tests__/index.test.ts|48✔|||195ms|
|packages/expect/src/__tests__/assertionCounts.test.ts|6✔|||60ms|
|packages/expect/src/__tests__/asymmetricMatchers.test.ts|38✔|||207ms|
|packages/expect/src/__tests__/extend.test.ts|10✔|||99ms|
|packages/expect/src/__tests__/isError.test.ts|4✔|||43ms|
|packages/expect/src/__tests__/matchers-toContain.property.test.ts|2✔|||236ms|
|packages/expect/src/__tests__/matchers-toContainEqual.property.test.ts|2✔|||287ms|
|packages/expect/src/__tests__/matchers-toEqual.property.test.ts|2✔|||1s|
|packages/expect/src/__tests__/matchers-toStrictEqual.property.test.ts|3✔|||394ms|
|packages/expect/src/__tests__/matchers.test.js|592✔|||862ms|
|packages/expect/src/__tests__/spyMatchers.test.ts|248✔|||395ms|
|packages/expect/src/__tests__/stacktrace.test.ts|3✔|||69ms|
|packages/expect/src/__tests__/symbolInObjects.test.ts|3✔|||33ms|
|packages/expect/src/__tests__/toEqual-dom.test.ts|12✔|||99ms|
|packages/expect/src/__tests__/toThrowMatchers.test.ts|98✔|||257ms|
|packages/expect/src/__tests__/utils.test.ts|41✔|||147ms|
|packages/jest-circus/src/__tests__/afterAll.test.ts|6✔|||6s|
|packages/jest-circus/src/__tests__/baseTest.test.ts|2✔|||3s|
|packages/jest-circus/src/__tests__/circusItTestError.test.ts|8✔|||300ms|
|packages/jest-circus/src/__tests__/circusItTodoTestError.test.ts|3✔|||81ms|
|packages/jest-circus/src/__tests__/hooks.test.ts|3✔|||4s|
|packages/jest-circus/src/__tests__/hooksError.test.ts|32✔|||127ms|
|packages/jest-cli/src/__tests__/cli/args.test.ts|17✔|||345ms|
|packages/jest-cli/src/init/__tests__/init.test.js|24✔|||119ms|
|packages/jest-cli/src/init/__tests__/modifyPackageJson.test.ts|4✔|||30ms|
|packages/jest-config/src/__tests__/Defaults.test.ts|1✔|||672ms|
|packages/jest-config/src/__tests__/getMaxWorkers.test.ts|7✔|||67ms|
|packages/jest-config/src/__tests__/normalize.test.js|118✔|||798ms|
|packages/jest-config/src/__tests__/readConfig.test.ts|1✔|||76ms|
|packages/jest-repl/src/__tests__/jest_repl.test.js|1✔|||1s|
|packages/jest-snapshot/src/__tests__/printSnapshot.test.ts|71✔|||1s|
|packages/jest-config/src/__tests__/Defaults.test.ts|1✔|||672ms|
|packages/jest-resolve/src/__tests__/resolve.test.ts|16✔|||1s|
|packages/expect/src/__tests__/matchers-toEqual.property.test.ts|2✔|||1s|
|packages/jest-reporters/src/__tests__/SummaryReporter.test.js|4✔|||366ms|
|packages/jest-config/src/__tests__/readConfigs.test.ts|3✔|||135ms|
|packages/jest-reporters/src/__tests__/generateEmptyCoverage.test.js|3✔|||1s|
|packages/expect/src/__tests__/asymmetricMatchers.test.ts|38✔|||207ms|
|packages/jest-reporters/src/__tests__/CoverageReporter.test.js|12✔|||397ms|
|packages/jest-snapshot/src/__tests__/InlineSnapshots.test.ts|22✔|||1s|
|packages/jest-config/src/__tests__/readConfig.test.ts|1✔|||76ms|
|packages/jest-watcher/src/lib/__tests__/scroll.test.ts|5✔|||57ms|
|packages/expect/src/__tests__/toThrowMatchers.test.ts|98✔|||257ms|
|packages/jest-validate/src/__tests__/validate.test.ts|23✔|||283ms|
|packages/jest-snapshot/src/__tests__/SnapshotResolver.test.ts|10✔|||98ms|
|packages/jest-reporters/src/__tests__/CoverageWorker.test.js|2✔|||199ms|
|packages/babel-jest/src/__tests__/index.ts|6✔|||371ms|
|packages/jest-config/src/__tests__/resolveConfigPath.test.ts|10✔|||183ms|
|packages/jest-reporters/src/__tests__/VerboseReporter.test.js|11✔|||425ms|
|packages/jest-snapshot/src/__tests__/utils.test.ts|26✔|||214ms|
|packages/jest-reporters/src/__tests__/NotifyReporter.test.ts|18✔|||166ms|
|packages/jest-repl/src/__tests__/runtime_cli.test.js|4✔|||4s|
|packages/expect/src/__tests__/extend.test.ts|10✔|||99ms|
|packages/jest-source-map/src/__tests__/getCallsite.test.ts|3✔|||86ms|
|packages/jest-config/src/__tests__/setFromArgv.test.ts|4✔|||53ms|
|packages/jest-watcher/src/lib/__tests__/prompt.test.ts|3✔|||91ms|
|packages/jest-docblock/src/__tests__/index.test.ts|36✔|||177ms|
|packages/jest-snapshot/src/__tests__/dedentLines.test.ts|17✔|||94ms|
|packages/jest-config/src/__tests__/getMaxWorkers.test.ts|7✔|||67ms|
|packages/jest-reporters/src/__tests__/utils.test.ts|10✔|||85ms|
|packages/jest-snapshot/src/__tests__/throwMatcher.test.ts|3✔|||481ms|
|packages/jest-snapshot/src/__tests__/matcher.test.ts|1✔|||131ms|
|packages/jest-config/src/__tests__/validatePattern.test.ts|4✔|||52ms|
|packages/jest-resolve/src/__tests__/isBuiltinModule.test.ts|4✔|||36ms|
|packages/jest-globals/src/__tests__/index.ts|1✔|||533ms|
|packages/jest-regex-util/src/__tests__/index.test.ts|8✔|||56ms|
|packages/jest-snapshot/src/__tests__/mockSerializer.test.ts|10✔|||45ms|
|packages/jest-reporters/src/__tests__/getWatermarks.test.ts|2✔|||37ms|
|packages/jest-reporters/src/__tests__/DefaultReporter.test.js|2✔|||148ms|
|packages/jest-reporters/src/__tests__/getResultHeader.test.js|4✔|||30ms|
|packages/expect/src/__tests__/toEqual-dom.test.ts|12✔|||99ms|
|packages/jest-environment-node/src/__tests__/node_environment.test.ts|6✔|||184ms|
|packages/jest-reporters/src/__tests__/getSnapshotStatus.test.js|3✔|||28ms|
|packages/jest-validate/src/__tests__/validateCLIOptions.test.js|6✔|||83ms|
|packages/jest-reporters/src/__tests__/getSnapshotSummary.test.js|4✔|||49ms|
|packages/jest-watcher/src/lib/__tests__/formatTestNameByPattern.test.ts|11✔|||129ms|
|packages/jest-transform/src/__tests__/shouldInstrument.test.ts|25✔|||155ms|
|packages/jest-transform/src/__tests__/ScriptTransformer.test.ts|22✔|||2s|
|packages/jest-circus/src/__tests__/baseTest.test.ts|2✔|||3s|
|packages/jest-mock/src/__tests__/index.test.ts|84✔|||509ms|
|packages/jest-circus/src/__tests__/hooks.test.ts|3✔|||4s|
|packages/jest-runtime/src/__tests__/runtime_require_module.test.js|27✔|||2s|
|packages/jest-runtime/src/__tests__/runtime_mock.test.js|4✔|||743ms|
|packages/jest-circus/src/__tests__/circusItTestError.test.ts|8✔|||300ms|
|packages/jest-worker/src/base/__tests__/BaseWorkerPool.test.js|11✔|||653ms|
|packages/pretty-format/src/__tests__/Immutable.test.ts|111✔|||443ms|
|packages/jest-runtime/src/__tests__/Runtime-sourceMaps.test.js|1✔|||584ms|
|packages/jest-environment-jsdom/src/__tests__/jsdom_environment.test.ts|2✔|||783ms|
|packages/babel-plugin-jest-hoist/src/__tests__/hoistPlugin.test.ts|4✔|||347ms|
|packages/jest-worker/src/workers/__tests__/ChildProcessWorker.test.js|17✔|||184ms|
|packages/jest-each/src/__tests__/array.test.ts|159✔|||192ms|
|packages/jest-each/src/__tests__/template.test.ts|242✔|||483ms|
|packages/pretty-format/src/__tests__/react.test.tsx|55✔|||325ms|
|packages/jest-circus/src/__tests__/afterAll.test.ts|6✔|||6s|
|packages/pretty-format/src/__tests__/prettyFormat.test.ts|86✔|||219ms|
|packages/jest-worker/src/__tests__/Farm.test.js|10✔|||158ms|
|packages/jest-worker/src/workers/__tests__/threadChild.test.js|10✔|||120ms|
|packages/jest-jasmine2/src/__tests__/queueRunner.test.ts|6✔|||93ms|
|packages/jest-worker/src/workers/__tests__/NodeThreadsWorker.test.js|15✔|||258ms|
|packages/jest-worker/src/workers/__tests__/processChild.test.js|10✔|||135ms|
|packages/jest-runner/src/__tests__/testRunner.test.ts|2✔|||905ms|
|packages/jest-circus/src/__tests__/hooksError.test.ts|32✔|||127ms|
|packages/jest-serializer/src/__tests__/index.test.ts|17✔|||158ms|
|packages/jest-console/src/__tests__/bufferedConsole.test.ts|20✔|||171ms|
|packages/jest-console/src/__tests__/CustomConsole.test.ts|23✔|||115ms|
|packages/pretty-format/src/__tests__/DOMCollection.test.ts|10✔|||64ms|
|packages/jest-circus/src/__tests__/circusItTodoTestError.test.ts|3✔|||81ms|
|packages/jest-test-sequencer/src/__tests__/test_sequencer.test.js|8✔|||251ms|
|packages/jest-jasmine2/src/__tests__/Suite.test.ts|1✔|||84ms|
|packages/pretty-format/src/__tests__/AsymmetricMatcher.test.ts|38✔|||137ms|
|packages/pretty-format/src/__tests__/ConvertAnsi.test.ts|6✔|||43ms|
|packages/jest-console/src/__tests__/getConsoleOutput.test.ts|12✔|||56ms|
|packages/jest-jasmine2/src/__tests__/expectationResultFactory.test.ts|7✔|||70ms|
|packages/jest-each/src/__tests__/index.test.ts|10✔|||44ms|
|packages/pretty-format/src/__tests__/DOMElement.test.ts|28✔|||148ms|
|packages/jest-test-result/src/__tests__/formatTestResults.test.ts|1✔|||53ms|
|packages/jest-worker/src/__tests__/index.test.js|8✔|||230ms|
|packages/jest-jasmine2/src/__tests__/hooksError.test.ts|32✔|||51ms|
|packages/jest-jasmine2/src/__tests__/reporter.test.ts|1✔|||107ms|
|packages/jest-jasmine2/src/__tests__/todoError.test.ts|3✔|||27ms|
|packages/jest-jasmine2/src/__tests__/itTestError.test.ts|6✔|||32ms|
|packages/jest-jasmine2/src/__tests__/iterators.test.ts|4✔|||43ms|
|packages/jest-jasmine2/src/__tests__/pTimeout.test.ts|3✔|||44ms|
|packages/jest-create-cache-key-function/src/__tests__/index.test.ts|1✔|||75ms|
|packages/jest-jasmine2/src/__tests__/concurrent.test.ts|3✔|||24ms|
|packages/jest-jasmine2/src/__tests__/itToTestAlias.test.ts|1✔|||23ms|
|packages/pretty-format/src/__tests__/ReactElement.test.ts|3✔|||64ms|
|packages/jest-worker/src/__tests__/FifoQueue.test.js|3✔|||48ms|
|packages/jest-worker/src/__tests__/PriorityQueue.test.js|5✔|||63ms|
|packages/jest-core/src/__tests__/SearchSource.test.ts|27✔|||3s|
|packages/expect/src/__tests__/matchers.test.js|592✔|||862ms|
|e2e/__tests__/jestRequireActual.test.ts|1✔|||2s|
|packages/jest-core/src/__tests__/watch.test.js|80✔|||7s|
|packages/jest-runtime/src/__tests__/runtime_require_module_or_mock_transitive_deps.test.js|6✔|||2s|
|packages/jest-core/src/__tests__/watchFileChanges.test.ts|1✔|||2s|
|packages/jest-haste-map/src/__tests__/index.test.js|44✔|||1s|
|e2e/__tests__/coverageHandlebars.test.ts|1✔|||2s|
|e2e/__tests__/compareDomNodes.test.ts|1✔|||1s|
|e2e/__tests__/jestEnvironmentJsdom.test.ts|1✔|||2s|
|e2e/__tests__/resolve.test.ts|1✔|||2s|
|e2e/__tests__/snapshot.test.ts|9✔|||14s|
|packages/jest-runtime/src/__tests__/runtime_require_module_or_mock.test.js|17✔|||1s|
|packages/jest-runtime/src/__tests__/runtime_require_mock.test.js|13✔|||962ms|
|packages/jest-runtime/src/__tests__/runtime_node_path.test.js|4✔|||1s|
|packages/jest-runtime/src/__tests__/runtime_require_resolve.test.ts|5✔|||707ms|
|packages/jest-leak-detector/src/__tests__/index.test.ts|6✔|||986ms|
|e2e/__tests__/jasmineAsyncWithPendingDuringTest.ts|1✔||1✖|72ms|
|packages/jest-core/src/__tests__/TestScheduler.test.js|8✔|||520ms|
|e2e/__tests__/expectInVm.test.ts|1✔|||2s|
|packages/jest-runtime/src/__tests__/runtime_require_actual.test.js|2✔|||478ms|
|packages/jest-runtime/src/__tests__/runtime_require_cache.test.js|2✔|||454ms|
|packages/jest-runtime/src/__tests__/runtime_module_directories.test.js|4✔|||525ms|
|packages/jest-runtime/src/__tests__/runtime_internal_module.test.js|4✔|||727ms|
|packages/jest-cli/src/__tests__/cli/args.test.ts|17✔|||345ms|
|packages/jest-runtime/src/__tests__/runtime_jest_spy_on.test.js|2✔|||521ms|
|packages/jest-resolve-dependencies/src/__tests__/dependency_resolver.test.ts|11✔|||666ms|
|packages/jest-message-util/src/__tests__/messages.test.ts|11✔|||205ms|
|packages/jest-diff/src/__tests__/diff.test.ts|107✔|||625ms|
|packages/jest-core/src/__tests__/watchTestNamePatternMode.test.js|1✔|||246ms|
|packages/expect/src/__tests__/spyMatchers.test.ts|248✔|||395ms|
|[e2e/__tests__/jestChangedFiles.test.ts](#r0s132)|9✔|1❌||9s|
|packages/jest-matcher-utils/src/__tests__/index.test.ts|48✔|||391ms|
|packages/jest-core/src/__tests__/watchFilenamePatternMode.test.js|2✔|||165ms|
|packages/jest-runtime/src/__tests__/runtime_create_mock_from_module.test.js|3✔|||606ms|
|packages/jest-runtime/src/__tests__/runtime_environment.test.js|2✔|||497ms|
|packages/jest-haste-map/src/__tests__/includes_dotfiles.test.ts|1✔|||337ms|
|packages/jest-haste-map/src/crawlers/__tests__/watchman.test.js|8✔|||153ms|
|packages/jest-fake-timers/src/__tests__/legacyFakeTimers.test.ts|50✔|||302ms|
|packages/jest-runtime/src/__tests__/runtime_jest_fn.js|4✔|||479ms|
|packages/expect/src/__tests__/matchers-toStrictEqual.property.test.ts|3✔|||394ms|
|packages/diff-sequences/src/__tests__/index.property.test.ts|7✔|||357ms|
|packages/jest-fake-timers/src/__tests__/modernFakeTimers.test.ts|40✔|||317ms|
|packages/expect/src/__tests__/matchers-toContain.property.test.ts|2✔|||236ms|
|packages/jest-runtime/src/__tests__/runtime_wrap.js|2✔|||263ms|
|packages/expect/src/__tests__/matchers-toContainEqual.property.test.ts|2✔|||287ms|
|packages/diff-sequences/src/__tests__/index.test.ts|48✔|||195ms|
|packages/jest-get-type/src/__tests__/getType.test.ts|14✔|||45ms|
|packages/jest-cli/src/init/__tests__/init.test.js|24✔|||119ms|
|packages/jest-runtime/src/__tests__/runtime_require_module_no_ext.test.js|1✔|||261ms|
|packages/jest-util/src/__tests__/deepCyclicCopy.test.ts|12✔|||86ms|
|e2e/__tests__/version.test.ts|1✔|||138ms|
|packages/jest-util/src/__tests__/createProcessObject.test.ts|4✔|||81ms|
|packages/jest-runtime/src/__tests__/instrumentation.test.ts|1✔|||275ms|
|packages/jest-core/src/__tests__/runJest.test.js|2✔|||261ms|
|packages/jest-matcher-utils/src/__tests__/Replaceable.test.ts|17✔|||111ms|
|packages/jest-util/src/__tests__/formatTime.test.ts|11✔|||82ms|
|packages/jest-worker/src/__tests__/thread-integration.test.js|6✔|||114ms|
|packages/jest-haste-map/src/__tests__/worker.test.js|7✔|||100ms|
|packages/jest-matcher-utils/src/__tests__/printDiffOrStringify.test.ts|21✔|||114ms|
|packages/expect/src/__tests__/utils.test.ts|41✔|||147ms|
|packages/jest-matcher-utils/src/__tests__/deepCyclicCopyReplaceable.test.ts|11✔|||49ms|
|packages/expect/src/__tests__/isError.test.ts|4✔|||43ms|
|packages/jest-get-type/src/__tests__/isPrimitive.test.ts|18✔|||36ms|
|packages/jest-haste-map/src/crawlers/__tests__/node.test.js|10✔|||170ms|
|[e2e/__tests__/onlyChanged.test.ts](#r0s166)|8✔|1❌||22s|
|packages/jest-diff/src/__tests__/joinAlignedDiffs.test.ts|6✔|||44ms|
|packages/jest-core/src/__tests__/SnapshotInteractiveMode.test.js|13✔|||89ms|
|packages/jest-runtime/src/__tests__/Runtime-statics.test.js|2✔|||162ms|
|packages/jest-diff/src/__tests__/getAlignedDiffs.test.ts|24✔|||72ms|
|packages/expect/src/__tests__/assertionCounts.test.ts|6✔|||60ms|
|packages/jest-haste-map/src/lib/__tests__/getPlatformExtension.test.js|1✔|||35ms|
|packages/jest-haste-map/src/lib/__tests__/isRegExpSupported.test.js|2✔|||31ms|
|packages/expect/src/__tests__/stacktrace.test.ts|3✔|||69ms|
|packages/jest-worker/src/__tests__/process-integration.test.js|5✔|||62ms|
|packages/jest-core/src/lib/__tests__/isValidPath.test.ts|3✔|||166ms|
|packages/jest-util/src/__tests__/errorWithStack.test.ts|1✔|||41ms|
|packages/jest-util/src/__tests__/isInteractive.test.ts|2✔|||35ms|
|packages/jest-diff/src/__tests__/diffStringsRaw.test.ts|2✔|||55ms|
|packages/jest-util/src/__tests__/globsToMatcher.test.ts|4✔|||56ms|
|packages/jest-core/src/__tests__/testSchedulerHelper.test.js|12✔|||48ms|
|packages/jest-util/src/__tests__/installCommonGlobals.test.ts|2✔|||68ms|
|packages/jest-haste-map/src/__tests__/get_mock_name.test.js|1✔|||22ms|
|packages/jest-worker/src/__tests__/WorkerPool.test.js|3✔|||51ms|
|packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js|15✔|||56ms|
|packages/jest-haste-map/src/lib/__tests__/normalizePathSep.test.js|2✔|||35ms|
|packages/jest-haste-map/src/lib/__tests__/fast_path.test.js|5✔|||29ms|
|packages/jest-core/src/__tests__/FailedTestsCache.test.js|1✔|||25ms|
|packages/jest-core/src/__tests__/getNoTestsFoundMessage.test.js|5✔|||61ms|
|packages/jest-core/src/__tests__/globals.test.ts|1✔|||22ms|
|packages/jest-core/src/__tests__/runJest.test.js|2✔|||261ms|
|packages/jest-core/src/__tests__/SearchSource.test.ts|27✔|||3s|
|packages/jest-core/src/__tests__/SnapshotInteractiveMode.test.js|13✔|||89ms|
|packages/jest-core/src/__tests__/TestScheduler.test.js|8✔|||520ms|
|packages/jest-core/src/__tests__/testSchedulerHelper.test.js|12✔|||48ms|
|packages/jest-core/src/__tests__/watch.test.js|80✔|||7s|
|packages/jest-core/src/__tests__/watchFileChanges.test.ts|1✔|||2s|
|packages/jest-core/src/__tests__/watchFilenamePatternMode.test.js|2✔|||165ms|
|packages/jest-core/src/__tests__/watchTestNamePatternMode.test.js|1✔|||246ms|
|packages/jest-core/src/lib/__tests__/isValidPath.test.ts|3✔|||166ms|
|packages/jest-core/src/lib/__tests__/logDebugMessages.test.ts|3✔|||48ms|
|packages/jest-create-cache-key-function/src/__tests__/index.test.ts|1✔|||75ms|
|packages/jest-diff/src/__tests__/diff.test.ts|107✔|||625ms|
|packages/jest-diff/src/__tests__/diffStringsRaw.test.ts|2✔|||55ms|
|packages/jest-diff/src/__tests__/getAlignedDiffs.test.ts|24✔|||72ms|
|packages/jest-diff/src/__tests__/joinAlignedDiffs.test.ts|6✔|||44ms|
|packages/jest-docblock/src/__tests__/index.test.ts|36✔|||177ms|
|packages/jest-each/src/__tests__/array.test.ts|159✔|||192ms|
|packages/jest-each/src/__tests__/index.test.ts|10✔|||44ms|
|packages/jest-each/src/__tests__/template.test.ts|242✔|||483ms|
|packages/jest-environment-jsdom/src/__tests__/jsdom_environment.test.ts|2✔|||783ms|
|packages/jest-environment-node/src/__tests__/node_environment.test.ts|6✔|||184ms|
|packages/jest-fake-timers/src/__tests__/legacyFakeTimers.test.ts|50✔|||302ms|
|packages/jest-fake-timers/src/__tests__/modernFakeTimers.test.ts|40✔|||317ms|
|packages/jest-get-type/src/__tests__/getType.test.ts|14✔|||45ms|
|packages/jest-get-type/src/__tests__/isPrimitive.test.ts|18✔|||36ms|
|packages/jest-globals/src/__tests__/index.ts|1✔|||533ms|
|packages/jest-haste-map/src/__tests__/get_mock_name.test.js|1✔|||22ms|
|packages/jest-haste-map/src/__tests__/includes_dotfiles.test.ts|1✔|||337ms|
|packages/jest-haste-map/src/__tests__/index.test.js|44✔|||1s|
|packages/jest-haste-map/src/__tests__/worker.test.js|7✔|||100ms|
|packages/jest-haste-map/src/crawlers/__tests__/node.test.js|10✔|||170ms|
|packages/jest-haste-map/src/crawlers/__tests__/watchman.test.js|8✔|||153ms|
|packages/jest-haste-map/src/lib/__tests__/dependencyExtractor.test.js|15✔|||56ms|
|packages/jest-haste-map/src/lib/__tests__/fast_path.test.js|5✔|||29ms|
|packages/jest-haste-map/src/lib/__tests__/getPlatformExtension.test.js|1✔|||35ms|
|packages/jest-haste-map/src/lib/__tests__/isRegExpSupported.test.js|2✔|||31ms|
|packages/jest-haste-map/src/lib/__tests__/normalizePathSep.test.js|2✔|||35ms|
|packages/jest-jasmine2/src/__tests__/concurrent.test.ts|3✔|||24ms|
|packages/jest-jasmine2/src/__tests__/expectationResultFactory.test.ts|7✔|||70ms|
|packages/jest-jasmine2/src/__tests__/hooksError.test.ts|32✔|||51ms|
|packages/jest-jasmine2/src/__tests__/iterators.test.ts|4✔|||43ms|
|packages/jest-jasmine2/src/__tests__/itTestError.test.ts|6✔|||32ms|
|packages/jest-jasmine2/src/__tests__/itToTestAlias.test.ts|1✔|||23ms|
|packages/jest-jasmine2/src/__tests__/pTimeout.test.ts|3✔|||44ms|
|packages/jest-jasmine2/src/__tests__/queueRunner.test.ts|6✔|||93ms|
|packages/jest-jasmine2/src/__tests__/reporter.test.ts|1✔|||107ms|
|packages/jest-jasmine2/src/__tests__/Suite.test.ts|1✔|||84ms|
|packages/jest-jasmine2/src/__tests__/todoError.test.ts|3✔|||27ms|
|packages/jest-leak-detector/src/__tests__/index.test.ts|6✔|||986ms|
|packages/jest-matcher-utils/src/__tests__/deepCyclicCopyReplaceable.test.ts|11✔|||49ms|
|packages/jest-matcher-utils/src/__tests__/deepCyclicCopyReplaceableDom.test.ts|2✔|||48ms|
|packages/jest-matcher-utils/src/__tests__/index.test.ts|48✔|||391ms|
|packages/jest-matcher-utils/src/__tests__/printDiffOrStringify.test.ts|21✔|||114ms|
|packages/jest-matcher-utils/src/__tests__/Replaceable.test.ts|17✔|||111ms|
|packages/jest-message-util/src/__tests__/messages.test.ts|11✔|||205ms|
|packages/jest-mock/src/__tests__/index.test.ts|84✔|||509ms|
|packages/jest-regex-util/src/__tests__/index.test.ts|8✔|||56ms|
|packages/jest-repl/src/__tests__/jest_repl.test.js|1✔|||1s|
|packages/jest-repl/src/__tests__/runtime_cli.test.js|4✔|||4s|
|packages/jest-reporters/src/__tests__/CoverageReporter.test.js|12✔|||397ms|
|packages/jest-reporters/src/__tests__/CoverageWorker.test.js|2✔|||199ms|
|packages/jest-reporters/src/__tests__/DefaultReporter.test.js|2✔|||148ms|
|packages/jest-reporters/src/__tests__/generateEmptyCoverage.test.js|3✔|||1s|
|packages/jest-reporters/src/__tests__/getResultHeader.test.js|4✔|||30ms|
|packages/jest-reporters/src/__tests__/getSnapshotStatus.test.js|3✔|||28ms|
|packages/jest-reporters/src/__tests__/getSnapshotSummary.test.js|4✔|||49ms|
|packages/jest-reporters/src/__tests__/getWatermarks.test.ts|2✔|||37ms|
|packages/jest-reporters/src/__tests__/NotifyReporter.test.ts|18✔|||166ms|
|packages/jest-reporters/src/__tests__/SummaryReporter.test.js|4✔|||366ms|
|packages/jest-reporters/src/__tests__/utils.test.ts|10✔|||85ms|
|packages/jest-reporters/src/__tests__/VerboseReporter.test.js|11✔|||425ms|
|packages/jest-resolve-dependencies/src/__tests__/dependency_resolver.test.ts|11✔|||666ms|
|packages/jest-resolve/src/__tests__/isBuiltinModule.test.ts|4✔|||36ms|
|packages/jest-resolve/src/__tests__/resolve.test.ts|16✔|||1s|
|packages/jest-runner/src/__tests__/testRunner.test.ts|2✔|||905ms|
|packages/jest-runtime/src/__tests__/instrumentation.test.ts|1✔|||275ms|
|packages/jest-runtime/src/__tests__/runtime_create_mock_from_module.test.js|3✔|||606ms|
|packages/jest-runtime/src/__tests__/runtime_environment.test.js|2✔|||497ms|
|packages/jest-runtime/src/__tests__/runtime_internal_module.test.js|4✔|||727ms|
|packages/jest-runtime/src/__tests__/runtime_jest_fn.js|4✔|||479ms|
|packages/jest-runtime/src/__tests__/runtime_jest_spy_on.test.js|2✔|||521ms|
|packages/jest-runtime/src/__tests__/runtime_mock.test.js|4✔|||743ms|
|packages/jest-runtime/src/__tests__/runtime_module_directories.test.js|4✔|||525ms|
|packages/jest-runtime/src/__tests__/runtime_node_path.test.js|4✔|||1s|
|packages/jest-runtime/src/__tests__/runtime_require_actual.test.js|2✔|||478ms|
|packages/jest-runtime/src/__tests__/runtime_require_cache.test.js|2✔|||454ms|
|packages/jest-runtime/src/__tests__/runtime_require_mock.test.js|13✔|||962ms|
|packages/jest-runtime/src/__tests__/runtime_require_module_no_ext.test.js|1✔|||261ms|
|packages/jest-runtime/src/__tests__/runtime_require_module_or_mock_transitive_deps.test.js|6✔|||2s|
|packages/jest-runtime/src/__tests__/runtime_require_module_or_mock.test.js|17✔|||1s|
|packages/jest-runtime/src/__tests__/runtime_require_module.test.js|27✔|||2s|
|packages/jest-runtime/src/__tests__/runtime_require_resolve.test.ts|5✔|||707ms|
|packages/jest-runtime/src/__tests__/runtime_wrap.js|2✔|||263ms|
|packages/jest-runtime/src/__tests__/Runtime-sourceMaps.test.js|1✔|||584ms|
|packages/jest-runtime/src/__tests__/Runtime-statics.test.js|2✔|||162ms|
|packages/jest-serializer/src/__tests__/index.test.ts|17✔|||158ms|
|packages/jest-snapshot/src/__tests__/dedentLines.test.ts|17✔|||94ms|
|packages/jest-snapshot/src/__tests__/InlineSnapshots.test.ts|22✔|||1s|
|packages/jest-snapshot/src/__tests__/matcher.test.ts|1✔|||131ms|
|packages/jest-snapshot/src/__tests__/mockSerializer.test.ts|10✔|||45ms|
|packages/jest-snapshot/src/__tests__/printSnapshot.test.ts|71✔|||1s|
|packages/jest-snapshot/src/__tests__/SnapshotResolver.test.ts|10✔|||98ms|
|packages/jest-snapshot/src/__tests__/throwMatcher.test.ts|3✔|||481ms|
|packages/jest-snapshot/src/__tests__/utils.test.ts|26✔|||214ms|
|packages/jest-source-map/src/__tests__/getCallsite.test.ts|3✔|||86ms|
|packages/jest-test-result/src/__tests__/formatTestResults.test.ts|1✔|||53ms|
|packages/jest-test-sequencer/src/__tests__/test_sequencer.test.js|8✔|||251ms|
|packages/jest-transform/src/__tests__/ScriptTransformer.test.ts|22✔|||2s|
|packages/jest-transform/src/__tests__/shouldInstrument.test.ts|25✔|||155ms|
|packages/jest-util/src/__tests__/createProcessObject.test.ts|4✔|||81ms|
|packages/jest-util/src/__tests__/deepCyclicCopy.test.ts|12✔|||86ms|
|packages/jest-util/src/__tests__/errorWithStack.test.ts|1✔|||41ms|
|packages/jest-util/src/__tests__/formatTime.test.ts|11✔|||82ms|
|packages/jest-util/src/__tests__/globsToMatcher.test.ts|4✔|||56ms|
|packages/jest-util/src/__tests__/installCommonGlobals.test.ts|2✔|||68ms|
|packages/jest-util/src/__tests__/isInteractive.test.ts|2✔|||35ms|
|packages/jest-util/src/__tests__/isPromise.test.ts|10✔|||30ms|
|packages/jest-validate/src/__tests__/validate.test.ts|23✔|||283ms|
|packages/jest-validate/src/__tests__/validateCLIOptions.test.js|6✔|||83ms|
|packages/jest-watcher/src/lib/__tests__/formatTestNameByPattern.test.ts|11✔|||129ms|
|packages/jest-watcher/src/lib/__tests__/prompt.test.ts|3✔|||91ms|
|packages/jest-watcher/src/lib/__tests__/scroll.test.ts|5✔|||57ms|
|packages/jest-worker/src/__tests__/Farm.test.js|10✔|||158ms|
|packages/jest-worker/src/__tests__/FifoQueue.test.js|3✔|||48ms|
|packages/jest-worker/src/__tests__/index.test.js|8✔|||230ms|
|packages/jest-worker/src/__tests__/PriorityQueue.test.js|5✔|||63ms|
|packages/jest-worker/src/__tests__/process-integration.test.js|5✔|||62ms|
|packages/jest-worker/src/__tests__/thread-integration.test.js|6✔|||114ms|
|packages/jest-worker/src/__tests__/WorkerPool.test.js|3✔|||51ms|
|packages/jest-worker/src/base/__tests__/BaseWorkerPool.test.js|11✔|||653ms|
|packages/jest-worker/src/workers/__tests__/ChildProcessWorker.test.js|17✔|||184ms|
|packages/jest-worker/src/workers/__tests__/NodeThreadsWorker.test.js|15✔|||258ms|
|packages/jest-worker/src/workers/__tests__/processChild.test.js|10✔|||135ms|
|packages/jest-worker/src/workers/__tests__/threadChild.test.js|10✔|||120ms|
|packages/pretty-format/src/__tests__/AsymmetricMatcher.test.ts|38✔|||137ms|
|packages/pretty-format/src/__tests__/ConvertAnsi.test.ts|6✔|||43ms|
|packages/pretty-format/src/__tests__/DOMCollection.test.ts|10✔|||64ms|
|packages/pretty-format/src/__tests__/DOMElement.test.ts|28✔|||148ms|
|packages/pretty-format/src/__tests__/Immutable.test.ts|111✔|||443ms|
|packages/pretty-format/src/__tests__/prettyFormat.test.ts|86✔|||219ms|
|packages/pretty-format/src/__tests__/react.test.tsx|55✔|||325ms|
|packages/pretty-format/src/__tests__/ReactElement.test.ts|3✔|||64ms|
### ❌ <a id="user-content-r0s75" href="#r0s75">e2e/__tests__/jestChangedFiles.test.ts</a>
|packages/jest-cli/src/init/__tests__/modifyPackageJson.test.ts|4✔|||30ms|
|packages/expect/src/__tests__/symbolInObjects.test.ts|3✔|||33ms|
|e2e/test-in-root/test.js|1✔|||37ms|
|e2e/test-in-root/spec.js|1✔|||19ms|
|e2e/v8-coverage/empty-sourcemap/test.ts|1✔|||31ms|
|packages/jest-matcher-utils/src/__tests__/deepCyclicCopyReplaceableDom.test.ts|2✔|||48ms|
|e2e/__tests__/nativeEsmTypescript.test.ts|1✔|||956ms|
|e2e/__tests__/coverageRemapping.test.ts|1✔|||13s|
|e2e/__tests__/globalTeardown.test.ts|7✔|||12s|
|e2e/__tests__/multiProjectRunner.test.ts|14✔|||16s|
|e2e/__tests__/toMatchSnapshot.test.ts|9✔|||17s|
|e2e/__tests__/detectOpenHandles.ts|8✔|||8s|
|e2e/__tests__/failures.test.ts|7✔|||10s|
|e2e/__tests__/console.test.ts|7✔|||8s|
|e2e/__tests__/globals.test.ts|10✔|||8s|
|e2e/__tests__/coverageThreshold.test.ts|5✔|||5s|
|e2e/__tests__/testPathPatternReporterMessage.test.ts|1✔|||3s|
|e2e/__tests__/filter.test.ts|7✔|||5s|
|e2e/__tests__/selectProjects.test.ts|18✔|||5s|
|e2e/__tests__/mockNames.test.ts|8✔|||7s|
|e2e/__tests__/stackTrace.test.ts|7✔|||5s|
|e2e/__tests__/each.test.ts|7✔|||5s|
|e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts|4✔|||4s|
|e2e/__tests__/watchModeNoAccess.test.ts|1✔|||4s|
|e2e/__tests__/pnp.test.ts|1✔|||3s|
|e2e/__tests__/declarationErrors.test.ts|3✔|||2s|
|e2e/__tests__/wrongEnv.test.ts|5✔|||4s|
|e2e/__tests__/setupFilesAfterEnvConfig.test.ts|2✔|||2s|
|e2e/__tests__/noTestsFound.test.ts|5✔|||3s|
|e2e/__tests__/customMatcherStackTrace.test.ts|2✔|||2s|
|e2e/__tests__/nestedTestDefinitions.test.ts|4✔|||5s|
|e2e/__tests__/autoClearMocks.test.ts|2✔|||2s|
|e2e/__tests__/forceExit.test.ts|1✔|||2s|
|e2e/__tests__/testFailureExitCode.test.ts|2✔|||4s|
|e2e/__tests__/promiseReject.test.ts|1✔|||967ms|
|e2e/__tests__/timerResetMocks.test.ts|2✔|||2s|
|e2e/__tests__/testEnvironmentAsync.test.ts|1✔|||1s|
|e2e/__tests__/resolveNoFileExtensions.test.ts|2✔|||1s|
|e2e/__tests__/nestedEventLoop.test.ts|1✔|||1s|
|e2e/__tests__/useStderr.test.ts|1✔|||1s|
|e2e/__tests__/domDiffing.test.ts|1✔|||1s|
|e2e/__tests__/consoleAfterTeardown.test.ts|1✔|||1s|
|e2e/__tests__/testInRoot.test.ts|1✔|||1s|
|e2e/__tests__/requireMainIsolateModules.test.ts|1✔|||976ms|
|e2e/__tests__/clearCache.test.ts|2✔|||1s|
|e2e/__tests__/runtimeInternalModuleRegistry.test.ts|1✔|||1s|
|e2e/__tests__/resolveNodeModule.test.ts|1✔|||943ms|
|e2e/__tests__/setImmediate.test.ts|1✔|||904ms|
|e2e/__tests__/emptySuiteError.test.ts|1✔|||885ms|
|e2e/__tests__/badSourceMap.test.ts|1✔|||858ms|
|e2e/__tests__/timerUseRealTimers.test.ts|1✔|||1s|
|e2e/__tests__/global-mutation.test.ts|1✔|||40ms|
|e2e/__tests__/runProgrammatically.test.ts|2✔|||575ms|
|e2e/__tests__/symbol.test.ts|1✔|||49ms|
|e2e/__tests__/hasteMapMockChanged.test.ts|1✔|||379ms|
|e2e/__tests__/existentRoots.test.ts|4✔|||627ms|
|e2e/__tests__/doneInHooks.test.ts|1✔|||855ms|
|e2e/__tests__/testEnvironmentCircusAsync.test.ts|1✔|||2s|
|e2e/__tests__/moduleNameMapper.test.ts|5✔|||5s|
|e2e/__tests__/customReporters.test.ts|9✔|||7s|
|e2e/__tests__/findRelatedFiles.test.ts|5✔|||6s|
|e2e/__tests__/env.test.ts|6✔|||5s|
|e2e/__tests__/globalSetup.test.ts|10✔|||14s|
|e2e/__tests__/workerForceExit.test.ts|2✔|||5s|
|e2e/__tests__/babelPluginJestHoist.test.ts|1✔|||6s|
|e2e/__tests__/coverageTransformInstrumented.test.ts|1✔|||5s|
|e2e/__tests__/timeoutsLegacy.test.ts|1✔||3✖|71ms|
|e2e/__tests__/asyncRegenerator.test.ts|1✔|||4s|
|e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts|5✔|||4s|
|e2e/__tests__/testTodo.test.ts|5✔|||4s|
|e2e/__tests__/onlyFailuresNonWatch.test.ts|1✔|||3s|
|e2e/__tests__/presets.test.ts|2✔|||2s|
|e2e/__tests__/expectAsyncMatcher.test.ts|2✔|||3s|
|e2e/__tests__/transform.test.ts|16✔|||27s|
|e2e/__tests__/chaiAssertionLibrary.ts|1✔|||2s|
|e2e/__tests__/stackTraceSourceMapsWithCoverage.test.ts|1✔|||2s|
|e2e/__tests__/customTestSequencers.test.ts|3✔|||3s|
|e2e/__tests__/beforeAllFiltered.ts|1✔|||958ms|
|e2e/__tests__/fakePromises.test.ts|2✔|||2s|
|e2e/__tests__/stackTraceSourceMaps.test.ts|1✔|||2s|
|e2e/__tests__/dynamicRequireDependencies.ts|1✔|||847ms|
|e2e/__tests__/overrideGlobals.test.ts|2✔|||2s|
|e2e/__tests__/executeTestsOnceInMpr.ts|1✔|||976ms|
|e2e/__tests__/moduleParentNullInTest.ts|1✔|||886ms|
|e2e/__tests__/requireAfterTeardown.test.ts|1✔|||921ms|
|e2e/__tests__/lifecycles.ts|1✔|||861ms|
|e2e/__tests__/hasteMapSha1.test.ts|1✔|||298ms|
|e2e/__tests__/json.test.ts|2✔|||29ms|
|e2e/__tests__/testResultsProcessor.test.ts|1✔|||910ms|
|e2e/__tests__/debug.test.ts|1✔|||899ms|
|e2e/__tests__/importedGlobals.test.ts|1✔|||1s|
|e2e/__tests__/customResolver.test.ts|1✔|||826ms|
|e2e/__tests__/circularInequality.test.ts|1✔|||1s|
|e2e/__tests__/injectGlobals.test.ts|2✔|||2s|
|e2e/__tests__/skipBeforeAfterAll.test.ts|1✔|||1s|
|e2e/__tests__/customInlineSnapshotMatchers.test.ts|1✔|||2s|
|e2e/__tests__/regexCharInPath.test.ts|1✔|||962ms|
|e2e/__tests__/noTestFound.test.ts|2✔|||1s|
|e2e/__tests__/nativeEsm.test.ts|2✔||1✖|905ms|
|e2e/__tests__/supportsDashedArgs.ts|2✔|||968ms|
|e2e/__tests__/transformLinkedModules.test.ts|1✔|||783ms|
|e2e/__tests__/testNamePattern.test.ts|1✔|||859ms|
|e2e/__tests__/nativeAsyncMock.test.ts|1✔|||55ms|
|e2e/__tests__/hasteMapSize.test.ts|2✔|||397ms|
|e2e/__tests__/circusDeclarationErrors.test.ts|1✔|||869ms|
|e2e/__tests__/testEnvironmentCircus.test.ts|1✔|||2s|
|e2e/__tests__/callDoneTwice.test.ts|1✔|||882ms|
|e2e/__tests__/emptyDescribeWithHooks.test.ts|4✔|||3s|
|e2e/__tests__/errorOnDeprecated.test.ts|1✔||24✖|56ms|
|e2e/__tests__/testRetries.test.ts|4✔|||3s|
|e2e/__tests__/jest.config.ts.test.ts|5✔|||14s|
|e2e/__tests__/coverageReport.test.ts|12✔|||22s|
|e2e/__tests__/toMatchInlineSnapshot.test.ts|12✔|||24s|
|examples/react-native/__tests__/intro.test.js|4✔|||9s|
|e2e/__tests__/toMatchInlineSnapshotWithRetries.test.ts|3✔|||5s|
|e2e/__tests__/timeouts.test.ts|4✔|||4s|
|e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts|3✔|||4s|
|e2e/__tests__/jasmineAsync.test.ts|15✔|||28s|
|e2e/__tests__/config.test.ts|6✔|||4s|
|e2e/__tests__/fatalWorkerError.test.ts|1✔|||3s|
|e2e/__tests__/toMatchSnapshotWithRetries.test.ts|2✔|||4s|
|e2e/__tests__/watchModePatterns.test.ts|2✔|||4s|
|e2e/__tests__/unexpectedToken.test.ts|3✔|||3s|
|e2e/__tests__/jestRequireMock.test.ts|1✔|||2s|
|e2e/__tests__/typescriptCoverage.test.ts|1✔|||3s|
|e2e/__tests__/jest.config.js.test.ts|3✔|||2s|
|e2e/__tests__/requireMainResetModules.test.ts|2✔|||2s|
|e2e/__tests__/modernFakeTimers.test.ts|2✔|||2s|
|e2e/__tests__/runTestsByPath.test.ts|1✔|||2s|
|e2e/__tests__/testEnvironment.test.ts|1✔|||2s|
|e2e/__tests__/circusConcurrentEach.test.ts|2✔|||2s|
|e2e/__tests__/autoRestoreMocks.test.ts|2✔|||2s|
|e2e/__tests__/jsonReporter.test.ts|2✔|||2s|
|e2e/__tests__/autoResetMocks.test.ts|2✔|||2s|
|e2e/__tests__/focusedTests.test.ts|1✔|||888ms|
|e2e/__tests__/watchModeOnlyFailed.test.ts|1✔|||1s|
|e2e/__tests__/beforeEachQueue.ts|1✔||1✖|55ms|
|e2e/__tests__/extraGlobals.test.ts|1✔|||1s|
|e2e/__tests__/snapshotSerializers.test.ts|2✔|||2s|
|e2e/__tests__/locationInResults.test.ts|2✔|||2s|
|e2e/__tests__/consoleLogOutputWhenRunInBand.test.ts|1✔|||793ms|
|e2e/__tests__/dependencyClash.test.ts|1✔|||833ms|
|e2e/__tests__/coverageWithoutTransform.test.ts|1✔|||1s|
|e2e/__tests__/cliHandlesExactFilenames.test.ts|2✔|||1s|
|e2e/__tests__/requireMainAfterCreateRequire.test.ts|1✔|||966ms|
|e2e/__tests__/resetModules.test.ts|1✔|||926ms|
|e2e/__tests__/watchModeUpdateSnapshot.test.ts|1✔|||1s|
|e2e/__tests__/generatorMock.test.ts|1✔|||1s|
|e2e/__tests__/resolveGetPaths.test.ts|1✔|||1s|
|e2e/__tests__/v8Coverage.test.ts|2✔|||2s|
|e2e/__tests__/resolveWithPaths.test.ts|1✔|||1s|
|e2e/__tests__/logHeapUsage.test.ts|1✔|||884ms|
|e2e/__tests__/requireMain.test.ts|1✔|||1s|
|e2e/__tests__/snapshotMockFs.test.ts|1✔|||883ms|
|e2e/__tests__/snapshot-unknown.test.ts|1✔|||838ms|
|examples/angular/app.component.spec.ts|3✔|||654ms|
|e2e/__tests__/stackTraceNoCaptureStackTrace.test.ts|1✔|||899ms|
|e2e/__tests__/testNamePatternSkipped.test.ts|1✔|||991ms|
|e2e/__tests__/failureDetailsProperty.test.ts|1✔|||907ms|
|e2e/__tests__/snapshotResolver.test.ts|1✔|||823ms|
|e2e/__tests__/processExit.test.ts|1✔|||1s|
|e2e/__tests__/nodePath.test.ts|1✔|||866ms|
|e2e/__tests__/verbose.test.ts|1✔|||683ms|
|e2e/__tests__/listTests.test.ts|2✔|||945ms|
|e2e/__tests__/createProcessObject.test.ts|1✔|||908ms|
|examples/react-testing-library/__tests__/CheckboxWithLabel-test.js|1✔|||469ms|
|examples/angular/shared/data.service.spec.ts|2✔|||431ms|
|e2e/__tests__/environmentAfterTeardown.test.ts|1✔|||892ms|
|e2e/__tests__/esmConfigFile.test.ts|3✔|||526ms|
|examples/enzyme/__tests__/CheckboxWithLabel-test.js|1✔|||434ms|
|examples/module-mock/__tests__/mock_per_test.js|2✔|||116ms|
|examples/mongodb/__test__/db.test.js|1✔|||236ms|
|examples/snapshot/__tests__/link.react.test.js|4✔|||181ms|
|examples/typescript/__tests__/CheckboxWithLabel-test.tsx|1✔|||227ms|
|examples/react/__tests__/CheckboxWithLabel-test.js|1✔|||256ms|
|e2e/__tests__/showConfig.test.ts|1✔|||195ms|
|examples/snapshot/__tests__/clock.react.test.js|1✔|||62ms|
|examples/timer/__tests__/infinite_timer_game.test.js|1✔|||94ms|
|examples/jquery/__tests__/fetch_current_user.test.js|2✔|||196ms|
|examples/jquery/__tests__/display_user.test.js|1✔|||196ms|
|examples/timer/__tests__/timer_game.test.js|3✔|||74ms|
|examples/async/__tests__/user.test.js|8✔|||96ms|
|examples/automatic-mocks/__tests__/createMockFromModule.test.js|2✔|||115ms|
|examples/manual-mocks/__tests__/file_summarizer.test.js|1✔|||87ms|
|examples/typescript/__tests__/calc.test.ts|6✔|||276ms|
|examples/getting-started/sum.test.js|1✔|||78ms|
|examples/angular/shared/sub.service.spec.ts|1✔|||109ms|
|examples/manual-mocks/__tests__/user.test.js|1✔|||41ms|
|examples/typescript/__tests__/sum-test.ts|2✔|||69ms|
|examples/automatic-mocks/__tests__/automock.test.js|2✔|||74ms|
|examples/manual-mocks/__tests__/lodashMocking.test.js|1✔|||109ms|
|examples/manual-mocks/__tests__/userMocked.test.js|1✔|||105ms|
|examples/typescript/__tests__/sum.test.js|2✔|||100ms|
|e2e/custom-test-sequencer/b.test.js|1✔|||21ms|
|examples/typescript/__tests__/sub-test.ts|1✔|||43ms|
|examples/module-mock/__tests__/full_mock.js|1✔|||60ms|
|e2e/__tests__/global.test.ts|1✔|||31ms|
|examples/automatic-mocks/__tests__/disableAutomocking.test.js|1✔|||24ms|
|e2e/timer-reset-mocks/after-reset-all-mocks/timerAndMock.test.js|2✔|||30ms|
|e2e/__tests__/requireV8Module.test.ts|1✔|||30ms|
|e2e/timer-reset-mocks/with-reset-mocks/timerWithMock.test.js|1✔|||34ms|
|examples/module-mock/__tests__/partial_mock.js|1✔|||215ms|
|e2e/custom-test-sequencer/d.test.js|1✔|||21ms|
|e2e/custom-test-sequencer/a.test.js|1✔|||29ms|
|e2e/custom-test-sequencer/e.test.js|1✔|||27ms|
|e2e/custom-test-sequencer/c.test.js|1✔|||42ms|
|e2e/__tests__/asyncAndCallback.test.ts|1✔|||746ms|
### ❌ <a id="user-content-r0s132" href="#r0s132">e2e/__tests__/jestChangedFiles.test.ts</a>
```
✔️ gets hg SCM roots and dedupes them
✔️ gets git SCM roots and dedupes them
@ -417,7 +417,7 @@
✔️ monitors only root paths for hg
✔️ handles a bad revision for "changedSince", for hg
```
### ❌ <a id="user-content-r0s98" href="#r0s98">e2e/__tests__/onlyChanged.test.ts</a>
### ❌ <a id="user-content-r0s166" href="#r0s166">e2e/__tests__/onlyChanged.test.ts</a>
```
✔️ run for "onlyChanged" and "changedSince"
✔️ run only changed files

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,293 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`dotnet-nunit tests report from matches snapshot 1`] = `
TestRunResult {
"path": "fixtures/external/dotnet/nunit-test-results.xml",
"suites": Array [
TestSuiteResult {
"groups": Array [],
"indentationDepth": 0,
"name": "mock-assembly.dll",
"totalTime": NaN,
},
TestSuiteResult {
"groups": Array [
TestGroupResult {
"name": "FailingTest",
"tests": Array [
TestCaseResult {
"error": Object {
"details": " at NUnit.Framework.Assert.Fail(String message, Object[] args) in D:\\\\Dev\\\\NUnit\\\\nunit-3.0\\\\work\\\\NUnitFramework\\\\src\\\\framework\\\\Assert.cs:line 142
at NUnit.Framework.Assert.Fail(String message) in D:\\\\Dev\\\\NUnit\\\\nunit-3.0\\\\work\\\\NUnitFramework\\\\src\\\\framework\\\\Assert.cs:line 152
at NUnit.Tests.Assemblies.MockTestFixture.FailingTest() in D:\\\\Dev\\\\NUnit\\\\nunit-3.0\\\\work\\\\NUnitFramework\\\\src\\\\mock-assembly\\\\MockAssembly.cs:line 121",
"line": undefined,
"message": "Intentional failure",
"path": undefined,
},
"name": "FailingTest",
"result": "failed",
"time": 23,
},
],
},
TestGroupResult {
"name": "InconclusiveTest",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "InconclusiveTest",
"result": "success",
"time": 1,
},
],
},
TestGroupResult {
"name": "MockTest1",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "MockTest1",
"result": "success",
"time": 0,
},
],
},
TestGroupResult {
"name": "MockTest2",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "MockTest2",
"result": "success",
"time": 0,
},
],
},
TestGroupResult {
"name": "MockTest3",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "MockTest3",
"result": "success",
"time": 0,
},
],
},
TestGroupResult {
"name": "MockTest4",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "MockTest4",
"result": "skipped",
"time": 0,
},
],
},
TestGroupResult {
"name": "MockTest5",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "MockTest5",
"result": "skipped",
"time": 0,
},
],
},
TestGroupResult {
"name": "NotRunnableTest",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "NotRunnableTest",
"result": "skipped",
"time": 0,
},
],
},
TestGroupResult {
"name": "TestWithException",
"tests": Array [
TestCaseResult {
"error": Object {
"details": " at NUnit.Tests.Assemblies.MockTestFixture.MethodThrowsException() in D:\\\\Dev\\\\NUnit\\\\nunit-3.0\\\\work\\\\NUnitFramework\\\\src\\\\mock-assembly\\\\MockAssembly.cs:line 158
at NUnit.Tests.Assemblies.MockTestFixture.TestWithException() in D:\\\\Dev\\\\NUnit\\\\nunit-3.0\\\\work\\\\NUnitFramework\\\\src\\\\mock-assembly\\\\MockAssembly.cs:line 153",
"line": undefined,
"message": "System.ApplicationException : Intentional Exception",
"path": undefined,
},
"name": "TestWithException",
"result": "failed",
"time": 2,
},
],
},
TestGroupResult {
"name": "TestWithManyProperties",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "TestWithManyProperties",
"result": "success",
"time": 0,
},
],
},
],
"indentationDepth": 1,
"name": "MockTestFixture",
"totalTime": NaN,
},
TestSuiteResult {
"groups": Array [],
"indentationDepth": 1,
"name": "BadFixture",
"totalTime": NaN,
},
TestSuiteResult {
"groups": Array [],
"indentationDepth": 1,
"name": "FixtureWithTestCases",
"totalTime": NaN,
},
TestSuiteResult {
"groups": Array [
TestGroupResult {
"name": "MethodWithParameters(2,2)",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "MethodWithParameters(2,2)",
"result": "success",
"time": 6,
},
],
},
TestGroupResult {
"name": "MethodWithParameters(9,11)",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "MethodWithParameters(9,11)",
"result": "success",
"time": 0,
},
],
},
],
"indentationDepth": 2,
"name": "MethodWithParameters",
"totalTime": NaN,
},
TestSuiteResult {
"groups": Array [],
"indentationDepth": 1,
"name": "IgnoredFixture",
"totalTime": NaN,
},
TestSuiteResult {
"groups": Array [],
"indentationDepth": 1,
"name": "ParameterizedFixture",
"totalTime": NaN,
},
TestSuiteResult {
"groups": Array [
TestGroupResult {
"name": "Test1",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "Test1",
"result": "success",
"time": 0,
},
],
},
TestGroupResult {
"name": "Test2",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "Test2",
"result": "success",
"time": 0,
},
],
},
],
"indentationDepth": 2,
"name": "ParameterizedFixture(42)",
"totalTime": NaN,
},
TestSuiteResult {
"groups": Array [
TestGroupResult {
"name": "Test1",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "Test1",
"result": "success",
"time": 0,
},
],
},
TestGroupResult {
"name": "Test2",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "Test2",
"result": "success",
"time": 0,
},
],
},
],
"indentationDepth": 2,
"name": "ParameterizedFixture(5)",
"totalTime": NaN,
},
TestSuiteResult {
"groups": Array [
TestGroupResult {
"name": "TestCase",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "TestCase",
"result": "success",
"time": 0,
},
],
},
],
"indentationDepth": 1,
"name": "OneTestCase",
"totalTime": NaN,
},
TestSuiteResult {
"groups": Array [
TestGroupResult {
"name": "MyTest",
"tests": Array [
TestCaseResult {
"error": undefined,
"name": "MyTest",
"result": "success",
"time": 1,
},
],
},
],
"indentationDepth": 1,
"name": "MockTestFixture",
"totalTime": NaN,
},
],
"totalTime": 154,
}
`;

View file

@ -121,6 +121,7 @@ Actual: False",
],
},
],
"indentationDepth": 0,
"name": "DotnetTests.XUnitTests.CalculatorTests",
"totalTime": undefined,
},
@ -351,6 +352,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.AbstractValidatorTester",
"totalTime": undefined,
},
@ -392,6 +394,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.AccessorCacheTests",
"totalTime": undefined,
},
@ -415,6 +418,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.AssemblyScannerTester",
"totalTime": undefined,
},
@ -654,6 +658,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.CascadingFailuresTester",
"totalTime": undefined,
},
@ -743,6 +748,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ChainedValidationTester",
"totalTime": undefined,
},
@ -772,6 +778,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ChainingValidatorsTester",
"totalTime": undefined,
},
@ -795,6 +802,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ChildRulesTests",
"totalTime": undefined,
},
@ -902,6 +910,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.CollectionValidatorWithParentTests",
"totalTime": undefined,
},
@ -1015,6 +1024,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ComplexValidationTester",
"totalTime": undefined,
},
@ -1134,6 +1144,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ConditionTests",
"totalTime": undefined,
},
@ -1157,6 +1168,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.CreditCardValidatorTests",
"totalTime": undefined,
},
@ -1186,6 +1198,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.CustomFailureActionTester",
"totalTime": undefined,
},
@ -1233,6 +1246,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.CustomMessageFormatTester",
"totalTime": undefined,
},
@ -1304,6 +1318,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.CustomValidatorTester",
"totalTime": undefined,
},
@ -1495,6 +1510,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.DefaultValidatorExtensionTester",
"totalTime": undefined,
},
@ -1722,6 +1738,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.EmailValidatorTests",
"totalTime": undefined,
},
@ -1787,6 +1804,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.EmptyTester",
"totalTime": undefined,
},
@ -1870,6 +1888,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.EnumValidatorTests",
"totalTime": undefined,
},
@ -1941,6 +1960,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.EqualValidatorTests",
"totalTime": undefined,
},
@ -1988,6 +2008,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ExactLengthValidatorTester",
"totalTime": undefined,
},
@ -2113,6 +2134,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ExclusiveBetweenValidatorTests",
"totalTime": undefined,
},
@ -2148,6 +2170,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ExtensionTester",
"totalTime": undefined,
},
@ -2363,6 +2386,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ForEachRuleTests",
"totalTime": undefined,
},
@ -2458,6 +2482,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.GreaterThanOrEqualToValidatorTester",
"totalTime": undefined,
},
@ -2547,6 +2572,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.GreaterThanValidatorTester",
"totalTime": undefined,
},
@ -2666,6 +2692,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.InclusiveBetweenValidatorTests",
"totalTime": undefined,
},
@ -2743,6 +2770,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.InheritanceValidatorTest",
"totalTime": undefined,
},
@ -2760,6 +2788,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.InlineValidatorTester",
"totalTime": undefined,
},
@ -2897,6 +2926,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.LanguageManagerTests",
"totalTime": undefined,
},
@ -3004,6 +3034,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.LengthValidatorTests",
"totalTime": undefined,
},
@ -3093,6 +3124,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.LessThanOrEqualToValidatorTester",
"totalTime": undefined,
},
@ -3200,6 +3232,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.LessThanValidatorTester",
"totalTime": undefined,
},
@ -3247,6 +3280,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.LocalisedMessagesTester",
"totalTime": undefined,
},
@ -3270,6 +3304,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.LocalisedNameTester",
"totalTime": undefined,
},
@ -3335,6 +3370,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.MemberAccessorTests",
"totalTime": undefined,
},
@ -3406,6 +3442,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.MessageFormatterTests",
"totalTime": undefined,
},
@ -3429,6 +3466,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ModelLevelValidatorTests",
"totalTime": undefined,
},
@ -3458,6 +3496,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.NameResolutionPluggabilityTester",
"totalTime": undefined,
},
@ -3529,6 +3568,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.NotEmptyTester",
"totalTime": undefined,
},
@ -3606,6 +3646,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.NotEqualValidatorTests",
"totalTime": undefined,
},
@ -3647,6 +3688,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.NotNullTester",
"totalTime": undefined,
},
@ -3688,6 +3730,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.NullTester",
"totalTime": undefined,
},
@ -3759,6 +3802,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.OnFailureTests",
"totalTime": undefined,
},
@ -3800,6 +3844,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.PredicateValidatorTester",
"totalTime": undefined,
},
@ -3853,6 +3898,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.PropertyChainTests",
"totalTime": undefined,
},
@ -3954,6 +4000,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.RegularExpressionValidatorTests",
"totalTime": undefined,
},
@ -4139,6 +4186,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.RuleBuilderTests",
"totalTime": undefined,
},
@ -4234,6 +4282,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.RuleDependencyTests",
"totalTime": undefined,
},
@ -4371,6 +4420,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.RulesetTests",
"totalTime": undefined,
},
@ -4418,6 +4468,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ScalePrecisionValidatorTests",
"totalTime": undefined,
},
@ -4681,6 +4732,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.SharedConditionTests",
"totalTime": undefined,
},
@ -4698,6 +4750,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.StandalonePropertyValidationTester",
"totalTime": undefined,
},
@ -4769,6 +4822,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.StringEnumValidatorTests",
"totalTime": undefined,
},
@ -4798,6 +4852,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.TrackingCollectionTests",
"totalTime": undefined,
},
@ -4833,6 +4888,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.TransformTests",
"totalTime": undefined,
},
@ -4886,6 +4942,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.UserSeverityTester",
"totalTime": undefined,
},
@ -4921,6 +4978,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.UserStateTester",
"totalTime": undefined,
},
@ -5016,6 +5074,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ValidateAndThrowTester",
"totalTime": undefined,
},
@ -5075,6 +5134,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ValidationResultTests",
"totalTime": undefined,
},
@ -5116,6 +5176,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ValidatorDescriptorTester",
"totalTime": undefined,
},
@ -5187,6 +5248,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ValidatorSelectorTests",
"totalTime": undefined,
},
@ -5636,6 +5698,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "FluentValidation.Tests.ValidatorTesterTester",
"totalTime": undefined,
},
@ -5692,6 +5755,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.CloudStorageCredentialsTest",
"totalTime": undefined,
},
@ -5733,6 +5797,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest",
"totalTime": undefined,
},
@ -5786,6 +5851,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest",
"totalTime": undefined,
},
@ -5809,6 +5875,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest",
"totalTime": undefined,
},
@ -5844,6 +5911,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest",
"totalTime": undefined,
},
@ -5879,6 +5947,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest",
"totalTime": undefined,
},
@ -5920,6 +5989,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest",
"totalTime": undefined,
},
@ -5985,6 +6055,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.CloudStorageTokenTest",
"totalTime": undefined,
},
@ -6014,6 +6085,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest",
"totalTime": undefined,
},
@ -6079,6 +6151,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest",
"totalTime": undefined,
},
@ -6120,6 +6193,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest",
"totalTime": undefined,
},
@ -6173,6 +6247,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.SecureStringExtensionsTest",
"totalTime": undefined,
},
@ -6262,6 +6337,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest",
"totalTime": undefined,
},

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -74,6 +74,7 @@ false !== true
],
},
],
"indentationDepth": 0,
"name": "test/main.test.js",
"totalTime": undefined,
},
@ -104,6 +105,7 @@ false !== true
],
},
],
"indentationDepth": 0,
"name": "test/second.test.js",
"totalTime": undefined,
},
@ -263,6 +265,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/buffered-worker-pool.spec.js",
"totalTime": undefined,
},
@ -374,6 +377,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/cli/config.spec.js",
"totalTime": undefined,
},
@ -1040,6 +1044,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/cli/node-flags.spec.js",
"totalTime": undefined,
},
@ -1362,6 +1367,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/cli/options.spec.js",
"totalTime": undefined,
},
@ -1457,6 +1463,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/cli/run-helpers.spec.js",
"totalTime": undefined,
},
@ -1723,6 +1730,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/cli/run.spec.js",
"totalTime": undefined,
},
@ -1958,6 +1966,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/mocha.spec.js",
"totalTime": undefined,
},
@ -2158,6 +2167,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/parallel-buffered-runner.spec.js",
"totalTime": undefined,
},
@ -2220,6 +2230,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/reporters/parallel-buffered.spec.js",
"totalTime": undefined,
},
@ -2631,6 +2642,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/serializer.spec.js",
"totalTime": undefined,
},
@ -2688,6 +2700,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/stack-trace-filter.spec.js",
"totalTime": undefined,
},
@ -2739,6 +2752,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/utils.spec.js",
"totalTime": undefined,
},
@ -2890,6 +2904,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/node-unit/worker.spec.js",
"totalTime": undefined,
},
@ -2974,6 +2989,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/context.spec.js",
"totalTime": undefined,
},
@ -3013,6 +3029,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/duration.spec.js",
"totalTime": undefined,
},
@ -3142,6 +3159,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/errors.spec.js",
"totalTime": undefined,
},
@ -3177,6 +3195,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/globals.spec.js",
"totalTime": undefined,
},
@ -3251,6 +3270,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/grep.spec.js",
"totalTime": undefined,
},
@ -3280,6 +3300,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/hook-async.spec.js",
"totalTime": undefined,
},
@ -3320,6 +3341,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/hook-sync-nested.spec.js",
"totalTime": undefined,
},
@ -3349,6 +3371,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/hook-sync.spec.js",
"totalTime": undefined,
},
@ -3366,6 +3389,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/hook-timeout.spec.js",
"totalTime": undefined,
},
@ -3406,6 +3430,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/hook.spec.js",
"totalTime": undefined,
},
@ -4513,6 +4538,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/mocha.spec.js",
"totalTime": undefined,
},
@ -4530,6 +4556,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/overspecified-async.spec.js",
"totalTime": undefined,
},
@ -4553,6 +4580,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/parse-query.spec.js",
"totalTime": undefined,
},
@ -4981,6 +5009,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/plugin-loader.spec.js",
"totalTime": undefined,
},
@ -4998,6 +5027,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/required-tokens.spec.js",
"totalTime": undefined,
},
@ -5015,6 +5045,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/root.spec.js",
"totalTime": undefined,
},
@ -5566,6 +5597,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/runnable.spec.js",
"totalTime": undefined,
},
@ -6214,6 +6246,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/runner.spec.js",
"totalTime": undefined,
},
@ -6727,6 +6760,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/suite.spec.js",
"totalTime": undefined,
},
@ -6843,6 +6877,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/test.spec.js",
"totalTime": undefined,
},
@ -6918,6 +6953,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/throw.spec.js",
"totalTime": undefined,
},
@ -7007,6 +7043,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/timeout.spec.js",
"totalTime": undefined,
},
@ -7578,6 +7615,7 @@ TestRunResult {
],
},
],
"indentationDepth": 0,
"name": "test/unit/utils.spec.js",
"totalTime": undefined,
},

View file

@ -0,0 +1,47 @@
import * as fs from 'fs'
import * as path from 'path'
import {DotnetNunitParser as DotnetNunitParser} from '../src/parsers/dotnet-nunit/dotnet-nunit-parser'
import {ParseOptions} from '../src/test-parser'
import {getReport, ReportOptions} from '../src/report/get-report'
import {normalizeFilePath} from '../src/utils/path-utils'
describe('dotnet-nunit tests', () => {
it('report parses without errors', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'dotnet', 'nunit-test-results.xml')
const outputPath = path.join(__dirname, '__outputs__', 'dotnet-nunit-tests-results.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: []
}
const parser = new DotnetNunitParser(opts)
const result = await parser.parse(filePath, fileContent)
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
it('report from matches snapshot', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'dotnet', 'nunit-test-results.xml')
const outputPath = path.join(__dirname, '__outputs__', 'dotnet-nunit-tests-results.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: []
}
const parser = new DotnetNunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
})

View file

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<test-run id="2" name="mock-assembly.dll" fullname="D:\Dev\NUnit\nunit-3.0\work\bin\vs2008\Debug\mock-assembly.dll" testcasecount="25" result="Failed" time="0.154" total="18" passed="12" failed="2" inconclusive="1" skipped="3" asserts="2" run-date="2011-07-26" start-time="11:34:27">
<environment nunit-version="1.0.0.0" clr-version="2.0.50727.4961" os-version="Microsoft Windows NT 6.1.7600.0" platform="Win32NT" cwd="D:\Dev\NUnit\nunit-3.0\work\bin\vs2008\Debug" machine-name="CHARLIE-LAPTOP" user="charlie" user-domain="charlie-laptop" culture="en-US" uiculture="en-US" />
<test-suite type="Assembly" id="1036" name="mock-assembly.dll" fullname="D:\Dev\NUnit\nunit-3.0\work\bin\vs2008\Debug\mock-assembly.dll" testcasecount="25" result="Failed" time="0.154" total="18" passed="12" failed="2" inconclusive="1" skipped="3" asserts="2">
<properties>
<property name="_PID" value="11928" />
<property name="_APPDOMAIN" value="test-domain-mock-assembly.dll" />
</properties>
<failure>
<message><![CDATA[Child test failed]]></message>
</failure>
<test-suite type="TestFixture" id="1000" name="MockTestFixture" fullname="NUnit.Tests.Assemblies.MockTestFixture" testcasecount="11" result="Failed" time="0.119" total="10" passed="4" failed="2" inconclusive="1" skipped="3" asserts="0">
<properties>
<property name="Category" value="FixtureCategory" />
<property name="Description" value="Fake Test Fixture" />
</properties>
<failure>
<message><![CDATA[Child test failed]]></message>
</failure>
<test-case id="1005" name="FailingTest" fullname="NUnit.Tests.Assemblies.MockTestFixture.FailingTest" result="Failed" time="0.023" asserts="0">
<failure>
<message><![CDATA[Intentional failure]]></message>
<stack-trace><![CDATA[ at NUnit.Framework.Assert.Fail(String message, Object[] args) in D:\Dev\NUnit\nunit-3.0\work\NUnitFramework\src\framework\Assert.cs:line 142
at NUnit.Framework.Assert.Fail(String message) in D:\Dev\NUnit\nunit-3.0\work\NUnitFramework\src\framework\Assert.cs:line 152
at NUnit.Tests.Assemblies.MockTestFixture.FailingTest() in D:\Dev\NUnit\nunit-3.0\work\NUnitFramework\src\mock-assembly\MockAssembly.cs:line 121]]></stack-trace>
</failure>
</test-case>
<test-case id="1010" name="InconclusiveTest" fullname="NUnit.Tests.Assemblies.MockTestFixture.InconclusiveTest" result="Inconclusive" time="0.001" asserts="0" />
<test-case id="1001" name="MockTest1" fullname="NUnit.Tests.Assemblies.MockTestFixture.MockTest1" result="Passed" time="0.000" asserts="0">
<properties>
<property name="Description" value="Mock Test #1" />
</properties>
</test-case>
<test-case id="1002" name="MockTest2" fullname="NUnit.Tests.Assemblies.MockTestFixture.MockTest2" result="Passed" time="0.000" asserts="0">
<properties>
<property name="Severity" value="Critical" />
<property name="Description" value="This is a really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really long description" />
<property name="Category" value="MockCategory" />
</properties>
</test-case>
<test-case id="1003" name="MockTest3" fullname="NUnit.Tests.Assemblies.MockTestFixture.MockTest3" result="Passed" time="0.000" asserts="0">
<properties>
<property name="Category" value="AnotherCategory" />
<property name="Category" value="MockCategory" />
</properties>
</test-case>
<test-case id="1007" name="MockTest4" fullname="NUnit.Tests.Assemblies.MockTestFixture.MockTest4" result="Skipped" label="Ignored" time="0.000" asserts="0">
<properties>
<property name="Category" value="Foo" />
<property name="_SKIPREASON" value="ignoring this test method for now" />
</properties>
<reason>
<message><![CDATA[ignoring this test method for now]]></message>
</reason>
</test-case>
<test-case id="1004" name="MockTest5" fullname="NUnit.Tests.Assemblies.MockTestFixture.MockTest5" result="Skipped" label="Invalid" time="0.000" asserts="0">
<properties>
<property name="_SKIPREASON" value="Method is not public" />
</properties>
<reason>
<message><![CDATA[Method is not public]]></message>
</reason>
</test-case>
<test-case id="1009" name="NotRunnableTest" fullname="NUnit.Tests.Assemblies.MockTestFixture.NotRunnableTest" result="Skipped" label="Invalid" time="0.000" asserts="0">
<properties>
<property name="_SKIPREASON" value="No arguments were provided" />
</properties>
<reason>
<message><![CDATA[No arguments were provided]]></message>
</reason>
</test-case>
<test-case id="1011" name="TestWithException" fullname="NUnit.Tests.Assemblies.MockTestFixture.TestWithException" result="Failed" label="Error" time="0.002" asserts="0">
<failure>
<message><![CDATA[System.ApplicationException : Intentional Exception]]></message>
<stack-trace><![CDATA[ at NUnit.Tests.Assemblies.MockTestFixture.MethodThrowsException() in D:\Dev\NUnit\nunit-3.0\work\NUnitFramework\src\mock-assembly\MockAssembly.cs:line 158
at NUnit.Tests.Assemblies.MockTestFixture.TestWithException() in D:\Dev\NUnit\nunit-3.0\work\NUnitFramework\src\mock-assembly\MockAssembly.cs:line 153]]></stack-trace>
</failure>
</test-case>
<test-case id="1006" name="TestWithManyProperties" fullname="NUnit.Tests.Assemblies.MockTestFixture.TestWithManyProperties" result="Passed" time="0.000" asserts="0">
<properties>
<property name="TargetMethod" value="SomeClassName" />
<property name="Size" value="5" />
</properties>
</test-case>
</test-suite>
<test-suite type="TestFixture" id="1023" name="BadFixture" fullname="NUnit.Tests.BadFixture" testcasecount="1" result="Skipped" label="Invalid" time="0.000" total="0" passed="0" failed="0" inconclusive="0" skipped="0" asserts="0">
<properties>
<property name="_SKIPREASON" value="No suitable constructor was found" />
</properties>
<reason>
<message><![CDATA[No suitable constructor was found]]></message>
</reason>
</test-suite>
<test-suite type="TestFixture" id="1025" name="FixtureWithTestCases" fullname="NUnit.Tests.FixtureWithTestCases" testcasecount="2" result="Passed" time="0.010" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="2">
<test-suite type="ParameterizedMethod" id="1026" name="MethodWithParameters" fullname="NUnit.Tests.FixtureWithTestCases.MethodWithParameters" testcasecount="2" result="Passed" time="0.009" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="2">
<test-case id="1027" name="MethodWithParameters(2,2)" fullname="NUnit.Tests.FixtureWithTestCases.MethodWithParameters(2,2)" result="Passed" time="0.006" asserts="1" />
<test-case id="1028" name="MethodWithParameters(9,11)" fullname="NUnit.Tests.FixtureWithTestCases.MethodWithParameters(9,11)" result="Passed" time="0.000" asserts="1" />
</test-suite>
</test-suite>
<test-suite type="TestFixture" id="1016" name="IgnoredFixture" fullname="NUnit.Tests.IgnoredFixture" testcasecount="3" result="Skipped" label="Ignored" time="0.000" total="0" passed="0" failed="0" inconclusive="0" skipped="0" asserts="0">
<properties>
<property name="_SKIPREASON" value="" />
</properties>
<reason>
<message><![CDATA[]]></message>
</reason>
</test-suite>
<test-suite type="ParameterizedFixture" id="1029" name="ParameterizedFixture" fullname="NUnit.Tests.ParameterizedFixture" testcasecount="4" result="Passed" time="0.007" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
<test-suite type="TestFixture" id="1030" name="ParameterizedFixture(42)" fullname="NUnit.Tests.ParameterizedFixture(42)" testcasecount="2" result="Passed" time="0.003" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
<test-case id="1031" name="Test1" fullname="NUnit.Tests.ParameterizedFixture(42).Test1" result="Passed" time="0.000" asserts="0" />
<test-case id="1032" name="Test2" fullname="NUnit.Tests.ParameterizedFixture(42).Test2" result="Passed" time="0.000" asserts="0" />
</test-suite>
<test-suite type="TestFixture" id="1033" name="ParameterizedFixture(5)" fullname="NUnit.Tests.ParameterizedFixture(5)" testcasecount="2" result="Passed" time="0.002" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
<test-case id="1034" name="Test1" fullname="NUnit.Tests.ParameterizedFixture(5).Test1" result="Passed" time="0.000" asserts="0" />
<test-case id="1035" name="Test2" fullname="NUnit.Tests.ParameterizedFixture(5).Test2" result="Passed" time="0.000" asserts="0" />
</test-suite>
</test-suite>
<test-suite type="TestFixture" id="1012" name="OneTestCase" fullname="NUnit.Tests.Singletons.OneTestCase" testcasecount="1" result="Passed" time="0.001" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
<test-case id="1013" name="TestCase" fullname="NUnit.Tests.Singletons.OneTestCase.TestCase" result="Passed" time="0.000" asserts="0" />
</test-suite>
<test-suite type="TestFixture" id="1014" name="MockTestFixture" fullname="NUnit.Tests.TestAssembly.MockTestFixture" testcasecount="1" result="Passed" time="0.001" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
<test-case id="1015" name="MyTest" fullname="NUnit.Tests.TestAssembly.MockTestFixture.MyTest" result="Passed" time="0.001" asserts="0" />
</test-suite>
</test-suite>
</test-run>

View file

@ -27,6 +27,7 @@ inputs:
Format of test results. Supported options:
- dart-json
- dotnet-trx
- dotnet-nunit
- flutter-json
- java-junit
- jest-junit

190
dist/index.js generated vendored
View file

@ -265,6 +265,7 @@ const dotnet_trx_parser_1 = __nccwpck_require__(2664);
const java_junit_parser_1 = __nccwpck_require__(676);
const jest_junit_parser_1 = __nccwpck_require__(1113);
const mocha_json_parser_1 = __nccwpck_require__(6043);
const dotnet_nunit_parser_1 = __nccwpck_require__(5706);
const path_utils_1 = __nccwpck_require__(4070);
const github_utils_1 = __nccwpck_require__(3522);
const markdown_utils_1 = __nccwpck_require__(6482);
@ -421,6 +422,8 @@ class TestReporter {
return new jest_junit_parser_1.JestJunitParser(options);
case 'mocha-json':
return new mocha_json_parser_1.MochaJsonParser(options);
case 'dotnet-nunit':
return new dotnet_nunit_parser_1.DotnetNunitParser(options);
default:
throw new Error(`Input variable 'reporter' is set to invalid value '${reporter}'`);
}
@ -447,6 +450,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.DartJsonParser = void 0;
const node_utils_1 = __nccwpck_require__(5824);
const path_utils_1 = __nccwpck_require__(4070);
const dart_json_types_1 = __nccwpck_require__(7887);
const test_results_1 = __nccwpck_require__(2768);
@ -560,6 +564,7 @@ class DartJsonParser {
const suites = tr.suites.map(s => {
return new test_results_1.TestSuiteResult(this.getRelativePath(s.suite.path), this.getGroups(s));
});
suites.sort((a, b) => a.name.localeCompare(b.name, node_utils_1.DEFAULT_LOCALE));
return new test_results_1.TestRunResult(tr.path, suites, tr.time);
}
getGroups(suite) {
@ -702,6 +707,174 @@ function isMessageEvent(event) {
exports.isMessageEvent = isMessageEvent;
/***/ }),
/***/ 5706:
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.DotnetNunitParser = void 0;
const path = __importStar(__nccwpck_require__(1017));
const xml2js_1 = __nccwpck_require__(6189);
const path_utils_1 = __nccwpck_require__(4070);
const test_results_1 = __nccwpck_require__(2768);
class DotnetNunitParser {
constructor(options) {
var _a;
this.options = options;
this.trackedFiles = {};
for (const filePath of options.trackedFiles) {
const fileName = path.basename(filePath);
const files = (_a = this.trackedFiles[fileName]) !== null && _a !== void 0 ? _a : (this.trackedFiles[fileName] = []);
files.push((0, path_utils_1.normalizeFilePath)(filePath));
}
}
parse(filePath, content) {
return __awaiter(this, void 0, void 0, function* () {
const reportOrSuite = yield this.getNunitReport(filePath, content);
return this.getTestRunResult(filePath, reportOrSuite);
});
}
getNunitReport(filePath, content) {
return __awaiter(this, void 0, void 0, function* () {
try {
return yield (0, xml2js_1.parseStringPromise)(content);
}
catch (e) {
throw new Error(`Invalid XML at ${filePath}\n\n${e}`);
}
});
}
getTestSuiteResultRecursive(testSuites, suiteResults, depth) {
if (testSuites !== undefined) {
testSuites.map(ts => {
const name = ts.$.name.trim();
const time = parseFloat(ts.$.duration) * 1000;
const groups = this.getGroups(ts);
const sr = new test_results_1.TestSuiteResult(name, groups, time, depth);
suiteResults.push(sr);
if (groups.length === 0) {
const nestedTestSuites = ts['test-suite'];
if (nestedTestSuites !== undefined) {
this.getTestSuiteResultRecursive(nestedTestSuites, suiteResults, depth + 1);
}
}
});
}
}
getTestRunResult(filePath, nunit) {
var _a;
const suites = [];
const testSuites = nunit['test-run']['test-suite'];
this.getTestSuiteResultRecursive(testSuites, suites, 0);
const seconds = parseFloat((_a = nunit['test-run'].$) === null || _a === void 0 ? void 0 : _a.time);
const time = isNaN(seconds) ? undefined : seconds * 1000;
return new test_results_1.TestRunResult(filePath, suites, time);
}
getGroups(suite) {
const groups = [];
if (suite['test-case'] === undefined) {
return [];
}
for (const tc of suite['test-case']) {
let grp = groups.find(g => g.describe === tc.$.name);
if (grp === undefined) {
grp = { describe: tc.$.name, tests: [] };
groups.push(grp);
}
grp.tests.push(tc);
}
return groups.map(grp => {
const tests = grp.tests.map(tc => {
const name = tc.$.name.trim();
const result = this.getTestCaseResult(tc);
const time = parseFloat(tc.$.time) * 1000;
const error = this.getTestCaseError(tc);
return new test_results_1.TestCaseResult(name, result, time, error);
});
return new test_results_1.TestGroupResult(grp.describe, tests);
});
}
getTestCaseResult(test) {
if (test.failure)
return 'failed';
if (test.$.result === 'Skipped')
return 'skipped';
return 'success';
}
getTestCaseError(tc) {
if (!this.options.parseErrors) {
return undefined;
}
const failure = tc.failure;
if (!failure) {
return undefined;
}
const details = failure[0]['stack-trace'] === undefined ? '' : failure[0]['stack-trace'][0];
let filePath;
let line;
const src = this.exceptionThrowSource(details);
if (src) {
filePath = src.filePath;
line = src.line;
}
return {
path: filePath,
line,
details,
message: failure[0].message === undefined ? '' : failure[0].message[0]
};
}
exceptionThrowSource(stackTrace) {
const lines = stackTrace.split(/\r?\n/);
const re = /^at (.*\) in .*):(.+)$/;
for (const str of lines) {
const match = str.match(re);
if (match !== null) {
const [, , filePath, lineStr] = match;
const line = parseInt(lineStr);
return { filePath, line };
}
}
}
}
exports.DotnetNunitParser = DotnetNunitParser;
/***/ }),
/***/ 2664:
@ -926,6 +1099,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.JavaJunitParser = void 0;
const path = __importStar(__nccwpck_require__(1017));
const xml2js_1 = __nccwpck_require__(6189);
const node_utils_1 = __nccwpck_require__(5824);
const path_utils_1 = __nccwpck_require__(4070);
const test_results_1 = __nccwpck_require__(2768);
class JavaJunitParser {
@ -984,6 +1158,7 @@ class JavaJunitParser {
const sr = new test_results_1.TestSuiteResult(name, this.getGroups(ts), time);
return sr;
});
suites.sort((a, b) => a.name.localeCompare(b.name, node_utils_1.DEFAULT_LOCALE));
const seconds = parseFloat((_a = junit.testsuites.$) === null || _a === void 0 ? void 0 : _a.time);
const time = isNaN(seconds) ? undefined : seconds * 1000;
return new test_results_1.TestRunResult(filePath, suites, time);
@ -1519,9 +1694,6 @@ function trimReport(lines) {
}
function applySort(results) {
results.sort((a, b) => a.path.localeCompare(b.path, node_utils_1.DEFAULT_LOCALE));
for (const res of results) {
res.suites.sort((a, b) => a.name.localeCompare(b.name, node_utils_1.DEFAULT_LOCALE));
}
}
function getByteLength(text) {
return Buffer.byteLength(text, 'utf8');
@ -1600,7 +1772,7 @@ function getSuitesReport(tr, runIndex, options) {
if (suites.length > 0) {
const suitesTable = (0, markdown_utils_1.table)(['Test suite', 'Passed', 'Failed', 'Skipped', 'Time'], [markdown_utils_1.Align.Left, markdown_utils_1.Align.Right, markdown_utils_1.Align.Right, markdown_utils_1.Align.Right, markdown_utils_1.Align.Right], ...suites.map((s, suiteIndex) => {
const tsTime = (0, markdown_utils_1.formatTime)(s.time);
const tsName = s.name;
const tsName = prependDepthIndentationToName(s.name.trim(), s.depth);
const skipLink = options.listTests === 'none' || (options.listTests === 'failed' && s.result !== 'failed');
const tsAddr = options.baseUrl + makeSuiteSlug(runIndex, suiteIndex).link;
const tsNameLink = skipLink ? tsName : (0, markdown_utils_1.link)(tsName, tsAddr);
@ -1619,6 +1791,10 @@ function getSuitesReport(tr, runIndex, options) {
}
return sections;
}
function prependDepthIndentationToName(name, depth) {
const depthPrefix = Array(depth).fill('&nbsp;&nbsp;&nbsp;&nbsp;').join('');
return depthPrefix + name;
}
function getTestsReport(ts, runIndex, suiteIndex, options) {
var _a, _b, _c;
if (options.listTests === 'failed' && ts.result !== 'failed') {
@ -1725,10 +1901,11 @@ class TestRunResult {
}
exports.TestRunResult = TestRunResult;
class TestSuiteResult {
constructor(name, groups, totalTime) {
constructor(name, groups, totalTime, indentationDepth = 0) {
this.name = name;
this.groups = groups;
this.totalTime = totalTime;
this.indentationDepth = indentationDepth;
}
get tests() {
return this.groups.reduce((sum, g) => sum + g.tests.length, 0);
@ -1752,6 +1929,9 @@ class TestSuiteResult {
get failedGroups() {
return this.groups.filter(grp => grp.result === 'failed');
}
get depth() {
return this.indentationDepth;
}
sort(deep) {
this.groups.sort((a, b) => { var _a, _b; return ((_a = a.name) !== null && _a !== void 0 ? _a : '').localeCompare((_b = b.name) !== null && _b !== void 0 ? _b : '', node_utils_1.DEFAULT_LOCALE); });
if (deep) {

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View file

@ -15,6 +15,7 @@ import {DotnetTrxParser} from './parsers/dotnet-trx/dotnet-trx-parser'
import {JavaJunitParser} from './parsers/java-junit/java-junit-parser'
import {JestJunitParser} from './parsers/jest-junit/jest-junit-parser'
import {MochaJsonParser} from './parsers/mocha-json/mocha-json-parser'
import {DotnetNunitParser} from './parsers/dotnet-nunit/dotnet-nunit-parser'
import {normalizeDirPath, normalizeFilePath} from './utils/path-utils'
import {getCheckRunContext} from './utils/github-utils'
@ -211,6 +212,8 @@ class TestReporter {
return new JestJunitParser(options)
case 'mocha-json':
return new MochaJsonParser(options)
case 'dotnet-nunit':
return new DotnetNunitParser(options)
default:
throw new Error(`Input variable 'reporter' is set to invalid value '${reporter}'`)
}

View file

@ -1,5 +1,5 @@
import {ParseOptions, TestParser} from '../../test-parser'
import {DEFAULT_LOCALE} from '../../utils/node-utils'
import {getBasePath, normalizeFilePath} from '../../utils/path-utils'
import {
@ -135,6 +135,8 @@ export class DartJsonParser implements TestParser {
return new TestSuiteResult(this.getRelativePath(s.suite.path), this.getGroups(s))
})
suites.sort((a, b) => a.name.localeCompare(b.name, DEFAULT_LOCALE))
return new TestRunResult(tr.path, suites, tr.time)
}

View file

@ -0,0 +1,150 @@
import * as path from 'path'
import {ParseOptions, TestParser} from '../../test-parser'
import {parseStringPromise} from 'xml2js'
import {NunitReport, TestCase, TestSuite} from './dotnet-nunit-types'
import {normalizeFilePath} from '../../utils/path-utils'
import {
TestExecutionResult,
TestRunResult,
TestSuiteResult,
TestGroupResult,
TestCaseResult,
TestCaseError
} from '../../test-results'
export class DotnetNunitParser implements TestParser {
readonly trackedFiles: {[fileName: string]: string[]}
constructor(readonly options: ParseOptions) {
this.trackedFiles = {}
for (const filePath of options.trackedFiles) {
const fileName = path.basename(filePath)
const files = this.trackedFiles[fileName] ?? (this.trackedFiles[fileName] = [])
files.push(normalizeFilePath(filePath))
}
}
async parse(filePath: string, content: string): Promise<TestRunResult> {
const reportOrSuite = await this.getNunitReport(filePath, content)
return this.getTestRunResult(filePath, reportOrSuite)
}
private async getNunitReport(filePath: string, content: string): Promise<NunitReport> {
try {
return await parseStringPromise(content)
} catch (e) {
throw new Error(`Invalid XML at ${filePath}\n\n${e}`)
}
}
private getTestSuiteResultRecursive(
testSuites: TestSuite[] | undefined,
suiteResults: TestSuiteResult[],
depth: number
): void {
if (testSuites !== undefined) {
testSuites.map(ts => {
const name = ts.$.name.trim()
const time = parseFloat(ts.$.duration) * 1000
const groups = this.getGroups(ts)
const sr = new TestSuiteResult(name, groups, time, depth)
suiteResults.push(sr)
if (groups.length === 0) {
const nestedTestSuites = ts['test-suite']
if (nestedTestSuites !== undefined) {
this.getTestSuiteResultRecursive(nestedTestSuites, suiteResults, depth + 1)
}
}
})
}
}
private getTestRunResult(filePath: string, nunit: NunitReport): TestRunResult {
const suites: TestSuiteResult[] = []
const testSuites = nunit['test-run']['test-suite']
this.getTestSuiteResultRecursive(testSuites, suites, 0)
const seconds = parseFloat(nunit['test-run'].$?.time)
const time = isNaN(seconds) ? undefined : seconds * 1000
return new TestRunResult(filePath, suites, time)
}
private getGroups(suite: TestSuite): TestGroupResult[] {
const groups: {describe: string; tests: TestCase[]}[] = []
if (suite['test-case'] === undefined) {
return []
}
for (const tc of suite['test-case']) {
let grp = groups.find(g => g.describe === tc.$.name)
if (grp === undefined) {
grp = {describe: tc.$.name, tests: []}
groups.push(grp)
}
grp.tests.push(tc)
}
return groups.map(grp => {
const tests = grp.tests.map(tc => {
const name = tc.$.name.trim()
const result = this.getTestCaseResult(tc)
const time = parseFloat(tc.$.time) * 1000
const error = this.getTestCaseError(tc)
return new TestCaseResult(name, result, time, error)
})
return new TestGroupResult(grp.describe, tests)
})
}
private getTestCaseResult(test: TestCase): TestExecutionResult {
if (test.failure) return 'failed'
if (test.$.result === 'Skipped') return 'skipped'
return 'success'
}
private getTestCaseError(tc: TestCase): TestCaseError | undefined {
if (!this.options.parseErrors) {
return undefined
}
const failure = tc.failure
if (!failure) {
return undefined
}
const details = failure[0]['stack-trace'] === undefined ? '' : failure[0]['stack-trace'][0]
let filePath
let line
const src = this.exceptionThrowSource(details)
if (src) {
filePath = src.filePath
line = src.line
}
return {
path: filePath,
line,
details,
message: failure[0].message === undefined ? '' : failure[0].message[0]
}
}
private exceptionThrowSource(stackTrace: string): {filePath: string; line: number} | undefined {
const lines = stackTrace.split(/\r?\n/)
const re = /^at (.*\) in .*):(.+)$/
for (const str of lines) {
const match = str.match(re)
if (match !== null) {
const [, , filePath, lineStr] = match
const line = parseInt(lineStr)
return {filePath, line}
}
}
}
}

View file

@ -0,0 +1,39 @@
export interface NunitReport {
'test-run': TestRun
}
export interface TestRun {
$: {
time: string
}
'test-suite'?: TestSuite[]
}
export interface TestSuite {
$: {
name: string
tests: string
errors: string
failed: string
skipped: string
passed: string
duration: string
}
'test-case'?: TestCase[]
'test-suite'?: TestSuite[]
}
export interface TestCase {
$: {
fullname: string
name: string
time: string
result: string
}
failure?: Failure[]
}
export interface Failure {
'stack-trace'?: string
message: string
}

View file

@ -2,6 +2,7 @@ import * as path from 'path'
import {ParseOptions, TestParser} from '../../test-parser'
import {parseStringPromise} from 'xml2js'
import {DEFAULT_LOCALE} from '../../utils/node-utils'
import {JunitReport, SingleSuiteReport, TestCase, TestSuite} from './java-junit-types'
import {normalizeFilePath} from '../../utils/path-utils'
@ -70,6 +71,8 @@ export class JavaJunitParser implements TestParser {
return sr
})
suites.sort((a, b) => a.name.localeCompare(b.name, DEFAULT_LOCALE))
const seconds = parseFloat(junit.testsuites.$?.time)
const time = isNaN(seconds) ? undefined : seconds * 1000
return new TestRunResult(filePath, suites, time)

View file

@ -81,9 +81,6 @@ function trimReport(lines: string[]): string {
function applySort(results: TestRunResult[]): void {
results.sort((a, b) => a.path.localeCompare(b.path, DEFAULT_LOCALE))
for (const res of results) {
res.suites.sort((a, b) => a.name.localeCompare(b.name, DEFAULT_LOCALE))
}
}
function getByteLength(text: string): number {
@ -184,7 +181,7 @@ function getSuitesReport(tr: TestRunResult, runIndex: number, options: ReportOpt
[Align.Left, Align.Right, Align.Right, Align.Right, Align.Right],
...suites.map((s, suiteIndex) => {
const tsTime = formatTime(s.time)
const tsName = s.name
const tsName = prependDepthIndentationToName(s.name.trim(), s.depth)
const skipLink = options.listTests === 'none' || (options.listTests === 'failed' && s.result !== 'failed')
const tsAddr = options.baseUrl + makeSuiteSlug(runIndex, suiteIndex).link
const tsNameLink = skipLink ? tsName : link(tsName, tsAddr)
@ -208,6 +205,11 @@ function getSuitesReport(tr: TestRunResult, runIndex: number, options: ReportOpt
return sections
}
function prependDepthIndentationToName(name: string, depth: number): string {
const depthPrefix = Array(depth).fill('&nbsp;&nbsp;&nbsp;&nbsp;').join('')
return depthPrefix + name
}
function getTestsReport(ts: TestSuiteResult, runIndex: number, suiteIndex: number, options: ReportOptions): string[] {
if (options.listTests === 'failed' && ts.result !== 'failed') {
return []

View file

@ -40,7 +40,12 @@ export class TestRunResult {
}
export class TestSuiteResult {
constructor(readonly name: string, readonly groups: TestGroupResult[], private totalTime?: number) {}
constructor(
readonly name: string,
readonly groups: TestGroupResult[],
private totalTime?: number,
private indentationDepth: number = 0
) {}
get tests(): number {
return this.groups.reduce((sum, g) => sum + g.tests.length, 0)
@ -49,12 +54,15 @@ export class TestSuiteResult {
get passed(): number {
return this.groups.reduce((sum, g) => sum + g.passed, 0)
}
get failed(): number {
return this.groups.reduce((sum, g) => sum + g.failed, 0)
}
get skipped(): number {
return this.groups.reduce((sum, g) => sum + g.skipped, 0)
}
get time(): number {
return this.totalTime ?? this.groups.reduce((sum, g) => sum + g.time, 0)
}
@ -67,6 +75,10 @@ export class TestSuiteResult {
return this.groups.filter(grp => grp.result === 'failed')
}
get depth(): number {
return this.indentationDepth
}
sort(deep: boolean): void {
this.groups.sort((a, b) => (a.name ?? '').localeCompare(b.name ?? '', DEFAULT_LOCALE))
if (deep) {