mirror of
https://github.com/dorny/test-reporter.git
synced 2026-02-01 19:05:23 -08:00
Compare commits
90 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6e6a65b7a0 | ||
|
|
3bd727259a | ||
|
|
5c0d9a463a | ||
|
|
613e721b02 | ||
|
|
f4ba16072c | ||
|
|
27dd4e035f | ||
|
|
10d304d4fb | ||
|
|
70db77d88c | ||
|
|
41662db5ca | ||
|
|
472c8c84b3 | ||
|
|
f5b0d547ba | ||
|
|
374896edff | ||
|
|
1a288b62f8 | ||
|
|
d61b558e8d | ||
|
|
fd386493ac | ||
|
|
3847ac0f98 | ||
|
|
f067224a7b | ||
|
|
c92ced3737 | ||
|
|
95058abb17 | ||
|
|
7befe80c6c | ||
|
|
45526f79fd | ||
|
|
9557e57e83 | ||
|
|
9d0f09a6b6 | ||
|
|
84e60bad69 | ||
|
|
1db430559c | ||
|
|
e052c7d317 | ||
|
|
de62e458d1 | ||
|
|
bec9662ac9 | ||
|
|
4067b7aa0f | ||
|
|
2d69204ad0 | ||
|
|
101b53723e | ||
|
|
3c93b151a3 | ||
|
|
06ae02969c | ||
|
|
21ae91ed3c | ||
|
|
521e122f40 | ||
|
|
482d7087e0 | ||
|
|
1397b99b7c | ||
|
|
d8481703bc | ||
|
|
c40b69fc4a | ||
|
|
ce340de8b9 | ||
|
|
953e623fd8 | ||
|
|
49c1f3ae6c | ||
|
|
b34d4b1bfe | ||
|
|
574868ab61 | ||
|
|
78ed680850 | ||
|
|
7676f84e6e | ||
|
|
b6671b1f76 | ||
|
|
eb1e62c1b1 | ||
|
|
41db6fbaaa | ||
|
|
81a2b8afcb | ||
|
|
653ebca2c2 | ||
|
|
675ad23cef | ||
|
|
9098107e2a | ||
|
|
31a54ee7eb | ||
|
|
2c14ff72a2 | ||
|
|
ed4d3e60ee | ||
|
|
ed2a32e11c | ||
|
|
32faf3e060 | ||
|
|
6e78727599 | ||
|
|
477942de89 | ||
|
|
f763877804 | ||
|
|
9d4bb43029 | ||
|
|
cacdfc564b | ||
|
|
a26c5eaf39 | ||
|
|
e1a31eb7a0 | ||
|
|
775c900089 | ||
|
|
3816496a0a | ||
|
|
c1768c8b7a | ||
|
|
c40d89d5e9 | ||
|
|
9a5ccba454 | ||
|
|
82b258b19e | ||
|
|
80874c1df3 | ||
|
|
99e65e60b1 | ||
|
|
0863296b14 | ||
|
|
1212842c04 | ||
|
|
4cd9c62896 | ||
|
|
1a3cfe6b48 | ||
|
|
7e5f292040 | ||
|
|
0b7d35fd12 | ||
|
|
ccc63b813f | ||
|
|
d5456180a6 | ||
|
|
a923ed8851 | ||
|
|
1e3a380fe6 | ||
|
|
fc13ca0827 | ||
|
|
724497a84c | ||
|
|
3608ee03fd | ||
|
|
bd77050543 | ||
|
|
49667db475 | ||
|
|
83b7f42d2d | ||
|
|
ceb9822f8b |
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -3,7 +3,7 @@ name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: 'bug'
|
||||
assignees: 'dorny,dharmendrasha,j-catania'
|
||||
assignees: 'dorny,dharmendrasha'
|
||||
---
|
||||
|
||||
## Describe the bug
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/feature.md
vendored
2
.github/ISSUE_TEMPLATE/feature.md
vendored
@@ -3,7 +3,7 @@ name: Feature Request
|
||||
about: Suggest a feature
|
||||
title: ''
|
||||
labels: 'enhancement'
|
||||
assignees: 'dorny,dharmendrasha,j-catania'
|
||||
assignees: 'dorny,dharmendrasha'
|
||||
---
|
||||
|
||||
## Describe
|
||||
|
||||
2
.github/workflows/check-dist.yml
vendored
2
.github/workflows/check-dist.yml
vendored
@@ -46,7 +46,7 @@ jobs:
|
||||
id: diff
|
||||
|
||||
# If index.js was different than expected, upload the expected version as an artifact
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
|
||||
with:
|
||||
name: dist
|
||||
|
||||
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
|
||||
- name: Upload test results
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: test-results
|
||||
path: __tests__/__results__/*.xml
|
||||
|
||||
12
CHANGELOG.md
12
CHANGELOG.md
@@ -1,5 +1,17 @@
|
||||
# Changelog
|
||||
|
||||
## 2.0.0
|
||||
* Parse JUnit report with detailed message in failure https://github.com/dorny/test-reporter/pull/559
|
||||
* Support displaying test results in markdown using GitHub Actions Job Summaries https://github.com/dorny/test-reporter/pull/383
|
||||
|
||||
## 1.9.1
|
||||
* Fix problematic retransmission of authentication token https://github.com/dorny/test-reporter/pull/438
|
||||
* Report correct number of tests in Dart https://github.com/dorny/test-reporter/pull/426
|
||||
* Number of completed tests mismatches passed/failed https://github.com/dorny/test-reporter/issues/319
|
||||
|
||||
## 1.9.0
|
||||
* Add support for Rspec (Ruby) https://github.com/dorny/test-reporter/pull/398
|
||||
|
||||
## 1.8.0
|
||||
* Add `SwiftXunitParser` class based on `JavaJunitParser` for `swift-xunit` reporter https://github.com/dorny/test-reporter/pull/317
|
||||
* Use NodeJS 18 LTS as default runtime https://github.com/dorny/test-reporter/pull/332
|
||||
|
||||
45
README.md
45
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
This [Github Action](https://github.com/features/actions) displays test results from popular testing frameworks directly in GitHub.
|
||||
|
||||
✔️ Parses test results in XML or JSON format and creates nice report as Github Check Run
|
||||
✔️ Parses test results in XML or JSON format and creates nice report as GitHub Check Run or GitHub Actions job summaries
|
||||
|
||||
✔️ Annotates code where it failed based on message and stack trace captured during test execution
|
||||
|
||||
@@ -13,7 +13,7 @@ This [Github Action](https://github.com/features/actions) displays test results
|
||||
|:--:|:--:|:--:|:--:|
|
||||
|
||||
**Supported languages / frameworks:**
|
||||
- .NET / [xUnit](https://xunit.net/) / [NUnit](https://nunit.org/) / [MSTest](https://github.com/Microsoft/testfx-docs)
|
||||
- .NET / [dotnet test](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#examples) ( [xUnit](https://xunit.net/) / [NUnit](https://nunit.org/) / [MSTest](https://github.com/Microsoft/testfx-docs) )
|
||||
- Dart / [test](https://pub.dev/packages/test)
|
||||
- Flutter / [test](https://pub.dev/packages/test)
|
||||
- Java / [JUnit](https://junit.org/)
|
||||
@@ -43,12 +43,12 @@ jobs:
|
||||
name: Build & Test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3 # checkout the repo
|
||||
- uses: actions/checkout@v4 # checkout the repo
|
||||
- run: npm ci # install packages
|
||||
- run: npm test # run tests (configured to use jest-junit reporter)
|
||||
|
||||
- name: Test Report
|
||||
uses: dorny/test-reporter@v1
|
||||
uses: dorny/test-reporter@v2
|
||||
if: success() || failure() # run this step even if previous step failed
|
||||
with:
|
||||
name: JEST Tests # Name of the check run which will be created
|
||||
@@ -74,10 +74,10 @@ jobs:
|
||||
build-test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3 # checkout the repo
|
||||
- uses: actions/checkout@v4 # checkout the repo
|
||||
- run: npm ci # install packages
|
||||
- run: npm test # run tests (configured to use jest-junit reporter)
|
||||
- uses: actions/upload-artifact@v3 # upload test results
|
||||
- uses: actions/upload-artifact@v4 # upload test results
|
||||
if: success() || failure() # run this step even if previous step failed
|
||||
with:
|
||||
name: test-results
|
||||
@@ -99,7 +99,7 @@ jobs:
|
||||
report:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dorny/test-reporter@v1
|
||||
- uses: dorny/test-reporter@v2
|
||||
with:
|
||||
artifact: test-results # artifact name
|
||||
name: JEST Tests # Name of the check run which will be created
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
## Usage
|
||||
|
||||
```yaml
|
||||
- uses: dorny/test-reporter@v1
|
||||
- uses: dorny/test-reporter@v2
|
||||
with:
|
||||
|
||||
# Name or regex of artifact containing test results
|
||||
@@ -137,11 +137,13 @@ jobs:
|
||||
|
||||
# Format of test results. Supported options:
|
||||
# dart-json
|
||||
# dotnet-nunit
|
||||
# dotnet-trx
|
||||
# flutter-json
|
||||
# java-junit
|
||||
# jest-junit
|
||||
# mocha-json
|
||||
# rspec-json
|
||||
reporter: ''
|
||||
|
||||
# Allows you to generate only the summary.
|
||||
@@ -149,9 +151,18 @@ jobs:
|
||||
# Detailed listing of test suites and test cases will be skipped.
|
||||
only-summary: 'false'
|
||||
|
||||
# Allows you to generate reports for Actions Summary
|
||||
# https://github.blog/2022-05-09-supercharging-github-actions-with-job-summaries/
|
||||
use-actions-summary: 'true'
|
||||
|
||||
# Customize the title of badges shown for each Actions Summary.
|
||||
# Useful when distinguish summaries for tests ran in multiple Actions steps.
|
||||
badge-title: 'tests'
|
||||
|
||||
# Limits which test suites are listed:
|
||||
# all
|
||||
# failed
|
||||
# none
|
||||
list-suites: 'all'
|
||||
|
||||
# Limits which test cases are listed:
|
||||
@@ -306,16 +317,22 @@ Configuration of `uniqueOutputName`, `suiteNameTemplate`, `classNameTemplate`, `
|
||||
- Mocha version [v7.2.0](https://github.com/mochajs/mocha/releases/tag/v7.2.0) or higher
|
||||
- Usage of [json](https://mochajs.org/#json) reporter.
|
||||
|
||||
You can use the following example configuration in `package.json`:
|
||||
For Mocha >= [v9.1.0](https://github.com/mochajs/mocha/releases/tag/v9.1.0), you can use the following example configuration in `package.json`:
|
||||
```json
|
||||
"scripts": {
|
||||
"test": "mocha --reporter json --reporter-option output=test-results.json"
|
||||
}
|
||||
```
|
||||
|
||||
For Mocha < v9.1, the command should look like this:
|
||||
```json
|
||||
"scripts": {
|
||||
"test": "mocha --reporter json > test-results.json"
|
||||
}
|
||||
```
|
||||
|
||||
Test processing might fail if any of your tests write anything on standard output.
|
||||
Mocha, unfortunately, doesn't have the option to store `json` output directly to the file, and we have to rely on redirecting its standard output.
|
||||
There is a work in progress to fix it: [mocha#4607](https://github.com/mochajs/mocha/pull/4607)
|
||||
Additionally, test processing might fail if any of your tests write anything on standard output.
|
||||
Before version [v9.1.0](https://github.com/mochajs/mocha/releases/tag/v9.1.0), Mocha doesn't have the option to store `json` output directly to the file, and we have to rely on redirecting its standard output ([mocha#4607](https://github.com/mochajs/mocha/pull/4607)).
|
||||
Please update Mocha to version [v9.1.0](https://github.com/mochajs/mocha/releases/tag/v9.1.0) or above if you encounter this issue.
|
||||
</details>
|
||||
|
||||
<details>
|
||||
@@ -330,7 +347,7 @@ Unfortunately, there are some known issues and limitations caused by GitHub API:
|
||||
|
||||
- Test report (i.e. Check Run summary) is markdown text. No custom styling or HTML is possible.
|
||||
- Maximum report size is 65535 bytes. Input parameters `list-suites` and `list-tests` will be automatically adjusted if max size is exceeded.
|
||||
- Test report can't reference any additional files (e.g. screenshots). You can use `actions/upload-artifact@v3` to upload them and inspect them manually.
|
||||
- Test report can't reference any additional files (e.g. screenshots). You can use `actions/upload-artifact@v4` to upload them and inspect them manually.
|
||||
- Check Runs are created for specific commit SHA. It's not possible to specify under which workflow test report should belong if more
|
||||
workflows are running for the same SHA. Thanks to this GitHub "feature" it's possible your test report will appear in an unexpected place in GitHub UI.
|
||||
For more information, see [#67](https://github.com/dorny/test-reporter/issues/67).
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/dart-json.json|1 ✅|4 ❌|1 ⚪|4s|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/dart-json.json</a>
|
||||
**6** tests were completed in **4s** with **1** passed, **4** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[test/main_test.dart](#r0s0)|1✅|3❌||74ms|
|
||||
|[test/second_test.dart](#r0s1)||1❌|1⚪|51ms|
|
||||
|[test/main_test.dart](#r0s0)|1 ✅|3 ❌||74ms|
|
||||
|[test/second_test.dart](#r0s1)||1 ❌|1 ⚪|51ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">test/main_test.dart</a>
|
||||
```
|
||||
Test 1
|
||||
|
||||
31
__tests__/__outputs__/dotnet-nunit.md
Normal file
31
__tests__/__outputs__/dotnet-nunit.md
Normal file
@@ -0,0 +1,31 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/dotnet-nunit.xml|3 ✅|5 ❌|1 ⚪|230ms|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/dotnet-nunit.xml</a>
|
||||
**9** tests were completed in **230ms** with **3** passed, **5** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[DotnetTests.NUnitV3Tests.dll.DotnetTests.XUnitTests](#r0s0)|3 ✅|5 ❌|1 ⚪|69ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">DotnetTests.NUnitV3Tests.dll.DotnetTests.XUnitTests</a>
|
||||
```
|
||||
CalculatorTests
|
||||
✅ Is_Even_Number(2)
|
||||
❌ Is_Even_Number(3)
|
||||
Expected: True
|
||||
But was: False
|
||||
|
||||
❌ Exception_In_TargetTest
|
||||
System.DivideByZeroException : Attempted to divide by zero.
|
||||
❌ Exception_In_Test
|
||||
System.Exception : Test
|
||||
❌ Failing_Test
|
||||
Expected: 3
|
||||
But was: 2
|
||||
|
||||
✅ Passing_Test
|
||||
✅ Passing_Test_With_Description
|
||||
⚪ Skipped_Test
|
||||
❌ Timeout_Test
|
||||
|
||||
```
|
||||
@@ -1,9 +1,12 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/dotnet-trx.trx|5 ✅|5 ❌|1 ⚪|1s|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/dotnet-trx.trx</a>
|
||||
**11** tests were completed in **1s** with **5** passed, **5** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[DotnetTests.XUnitTests.CalculatorTests](#r0s0)|5✅|5❌|1⚪|118ms|
|
||||
|[DotnetTests.XUnitTests.CalculatorTests](#r0s0)|5 ✅|5 ❌|1 ⚪|118ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">DotnetTests.XUnitTests.CalculatorTests</a>
|
||||
```
|
||||
✅ Custom Name
|
||||
|
||||
@@ -1,70 +1,75 @@
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/FluentValidation.Tests.trx|803 ✅||1 ⚪|4s|
|
||||
## ✅ <a id="user-content-r0" href="#r0">fixtures/external/FluentValidation.Tests.trx</a>
|
||||
**804** tests were completed in **4s** with **803** passed, **0** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[FluentValidation.Tests.AbstractValidatorTester](#r0s0)|35✅|||12ms|
|
||||
|[FluentValidation.Tests.AccessorCacheTests](#r0s1)|4✅||1⚪|4ms|
|
||||
|[FluentValidation.Tests.AssemblyScannerTester](#r0s2)|2✅|||2ms|
|
||||
|[FluentValidation.Tests.CascadingFailuresTester](#r0s3)|38✅|||23ms|
|
||||
|[FluentValidation.Tests.ChainedValidationTester](#r0s4)|13✅|||6ms|
|
||||
|[FluentValidation.Tests.ChainingValidatorsTester](#r0s5)|3✅|||1ms|
|
||||
|[FluentValidation.Tests.ChildRulesTests](#r0s6)|2✅|||7ms|
|
||||
|[FluentValidation.Tests.CollectionValidatorWithParentTests](#r0s7)|16✅|||13ms|
|
||||
|[FluentValidation.Tests.ComplexValidationTester](#r0s8)|17✅|||26ms|
|
||||
|[FluentValidation.Tests.ConditionTests](#r0s9)|18✅|||9ms|
|
||||
|[FluentValidation.Tests.CreditCardValidatorTests](#r0s10)|2✅|||2ms|
|
||||
|[FluentValidation.Tests.CustomFailureActionTester](#r0s11)|3✅|||1ms|
|
||||
|[FluentValidation.Tests.CustomMessageFormatTester](#r0s12)|6✅|||3ms|
|
||||
|[FluentValidation.Tests.CustomValidatorTester](#r0s13)|10✅|||6ms|
|
||||
|[FluentValidation.Tests.DefaultValidatorExtensionTester](#r0s14)|30✅|||38ms|
|
||||
|[FluentValidation.Tests.EmailValidatorTests](#r0s15)|36✅|||18ms|
|
||||
|[FluentValidation.Tests.EmptyTester](#r0s16)|9✅|||5ms|
|
||||
|[FluentValidation.Tests.EnumValidatorTests](#r0s17)|12✅|||24ms|
|
||||
|[FluentValidation.Tests.EqualValidatorTests](#r0s18)|10✅|||3ms|
|
||||
|[FluentValidation.Tests.ExactLengthValidatorTester](#r0s19)|6✅|||2ms|
|
||||
|[FluentValidation.Tests.ExclusiveBetweenValidatorTests](#r0s20)|19✅|||6ms|
|
||||
|[FluentValidation.Tests.ExtensionTester](#r0s21)|4✅|||1ms|
|
||||
|[FluentValidation.Tests.ForEachRuleTests](#r0s22)|34✅|||47ms|
|
||||
|[FluentValidation.Tests.GreaterThanOrEqualToValidatorTester](#r0s23)|14✅|||5ms|
|
||||
|[FluentValidation.Tests.GreaterThanValidatorTester](#r0s24)|13✅|||4ms|
|
||||
|[FluentValidation.Tests.InclusiveBetweenValidatorTests](#r0s25)|18✅|||4ms|
|
||||
|[FluentValidation.Tests.InheritanceValidatorTest](#r0s26)|11✅|||18ms|
|
||||
|[FluentValidation.Tests.InlineValidatorTester](#r0s27)|1✅|||2ms|
|
||||
|[FluentValidation.Tests.LanguageManagerTests](#r0s28)|21✅|||28ms|
|
||||
|[FluentValidation.Tests.LengthValidatorTests](#r0s29)|16✅|||17ms|
|
||||
|[FluentValidation.Tests.LessThanOrEqualToValidatorTester](#r0s30)|13✅|||4ms|
|
||||
|[FluentValidation.Tests.LessThanValidatorTester](#r0s31)|16✅|||6ms|
|
||||
|[FluentValidation.Tests.LocalisedMessagesTester](#r0s32)|6✅|||3ms|
|
||||
|[FluentValidation.Tests.LocalisedNameTester](#r0s33)|2✅|||1ms|
|
||||
|[FluentValidation.Tests.MemberAccessorTests](#r0s34)|9✅|||5ms|
|
||||
|[FluentValidation.Tests.MessageFormatterTests](#r0s35)|10✅|||2ms|
|
||||
|[FluentValidation.Tests.ModelLevelValidatorTests](#r0s36)|2✅|||1ms|
|
||||
|[FluentValidation.Tests.NameResolutionPluggabilityTester](#r0s37)|3✅|||2ms|
|
||||
|[FluentValidation.Tests.NotEmptyTester](#r0s38)|10✅|||7ms|
|
||||
|[FluentValidation.Tests.NotEqualValidatorTests](#r0s39)|11✅|||7ms|
|
||||
|[FluentValidation.Tests.NotNullTester](#r0s40)|5✅|||1ms|
|
||||
|[FluentValidation.Tests.NullTester](#r0s41)|5✅|||2ms|
|
||||
|[FluentValidation.Tests.OnFailureTests](#r0s42)|10✅|||8ms|
|
||||
|[FluentValidation.Tests.PredicateValidatorTester](#r0s43)|5✅|||2ms|
|
||||
|[FluentValidation.Tests.PropertyChainTests](#r0s44)|7✅|||1ms|
|
||||
|[FluentValidation.Tests.RegularExpressionValidatorTests](#r0s45)|15✅|||6ms|
|
||||
|[FluentValidation.Tests.RuleBuilderTests](#r0s46)|29✅|||96ms|
|
||||
|[FluentValidation.Tests.RuleDependencyTests](#r0s47)|14✅|||3s|
|
||||
|[FluentValidation.Tests.RulesetTests](#r0s48)|21✅|||14ms|
|
||||
|[FluentValidation.Tests.ScalePrecisionValidatorTests](#r0s49)|6✅|||4ms|
|
||||
|[FluentValidation.Tests.SharedConditionTests](#r0s50)|42✅|||42ms|
|
||||
|[FluentValidation.Tests.StandalonePropertyValidationTester](#r0s51)|1✅|||0ms|
|
||||
|[FluentValidation.Tests.StringEnumValidatorTests](#r0s52)|10✅|||5ms|
|
||||
|[FluentValidation.Tests.TrackingCollectionTests](#r0s53)|3✅|||2ms|
|
||||
|[FluentValidation.Tests.TransformTests](#r0s54)|4✅|||3ms|
|
||||
|[FluentValidation.Tests.UserSeverityTester](#r0s55)|7✅|||3ms|
|
||||
|[FluentValidation.Tests.UserStateTester](#r0s56)|4✅|||3ms|
|
||||
|[FluentValidation.Tests.ValidateAndThrowTester](#r0s57)|14✅|||25ms|
|
||||
|[FluentValidation.Tests.ValidationResultTests](#r0s58)|8✅|||8ms|
|
||||
|[FluentValidation.Tests.ValidatorDescriptorTester](#r0s59)|5✅|||1ms|
|
||||
|[FluentValidation.Tests.ValidatorSelectorTests](#r0s60)|10✅|||9ms|
|
||||
|[FluentValidation.Tests.ValidatorTesterTester](#r0s61)|73✅|||74ms|
|
||||
|[FluentValidation.Tests.AbstractValidatorTester](#r0s0)|35 ✅|||12ms|
|
||||
|[FluentValidation.Tests.AccessorCacheTests](#r0s1)|4 ✅||1 ⚪|4ms|
|
||||
|[FluentValidation.Tests.AssemblyScannerTester](#r0s2)|2 ✅|||2ms|
|
||||
|[FluentValidation.Tests.CascadingFailuresTester](#r0s3)|38 ✅|||23ms|
|
||||
|[FluentValidation.Tests.ChainedValidationTester](#r0s4)|13 ✅|||6ms|
|
||||
|[FluentValidation.Tests.ChainingValidatorsTester](#r0s5)|3 ✅|||1ms|
|
||||
|[FluentValidation.Tests.ChildRulesTests](#r0s6)|2 ✅|||7ms|
|
||||
|[FluentValidation.Tests.CollectionValidatorWithParentTests](#r0s7)|16 ✅|||13ms|
|
||||
|[FluentValidation.Tests.ComplexValidationTester](#r0s8)|17 ✅|||26ms|
|
||||
|[FluentValidation.Tests.ConditionTests](#r0s9)|18 ✅|||9ms|
|
||||
|[FluentValidation.Tests.CreditCardValidatorTests](#r0s10)|2 ✅|||2ms|
|
||||
|[FluentValidation.Tests.CustomFailureActionTester](#r0s11)|3 ✅|||1ms|
|
||||
|[FluentValidation.Tests.CustomMessageFormatTester](#r0s12)|6 ✅|||3ms|
|
||||
|[FluentValidation.Tests.CustomValidatorTester](#r0s13)|10 ✅|||6ms|
|
||||
|[FluentValidation.Tests.DefaultValidatorExtensionTester](#r0s14)|30 ✅|||38ms|
|
||||
|[FluentValidation.Tests.EmailValidatorTests](#r0s15)|36 ✅|||18ms|
|
||||
|[FluentValidation.Tests.EmptyTester](#r0s16)|9 ✅|||5ms|
|
||||
|[FluentValidation.Tests.EnumValidatorTests](#r0s17)|12 ✅|||24ms|
|
||||
|[FluentValidation.Tests.EqualValidatorTests](#r0s18)|10 ✅|||3ms|
|
||||
|[FluentValidation.Tests.ExactLengthValidatorTester](#r0s19)|6 ✅|||2ms|
|
||||
|[FluentValidation.Tests.ExclusiveBetweenValidatorTests](#r0s20)|19 ✅|||6ms|
|
||||
|[FluentValidation.Tests.ExtensionTester](#r0s21)|4 ✅|||1ms|
|
||||
|[FluentValidation.Tests.ForEachRuleTests](#r0s22)|34 ✅|||47ms|
|
||||
|[FluentValidation.Tests.GreaterThanOrEqualToValidatorTester](#r0s23)|14 ✅|||5ms|
|
||||
|[FluentValidation.Tests.GreaterThanValidatorTester](#r0s24)|13 ✅|||4ms|
|
||||
|[FluentValidation.Tests.InclusiveBetweenValidatorTests](#r0s25)|18 ✅|||4ms|
|
||||
|[FluentValidation.Tests.InheritanceValidatorTest](#r0s26)|11 ✅|||18ms|
|
||||
|[FluentValidation.Tests.InlineValidatorTester](#r0s27)|1 ✅|||2ms|
|
||||
|[FluentValidation.Tests.LanguageManagerTests](#r0s28)|21 ✅|||28ms|
|
||||
|[FluentValidation.Tests.LengthValidatorTests](#r0s29)|16 ✅|||17ms|
|
||||
|[FluentValidation.Tests.LessThanOrEqualToValidatorTester](#r0s30)|13 ✅|||4ms|
|
||||
|[FluentValidation.Tests.LessThanValidatorTester](#r0s31)|16 ✅|||6ms|
|
||||
|[FluentValidation.Tests.LocalisedMessagesTester](#r0s32)|6 ✅|||3ms|
|
||||
|[FluentValidation.Tests.LocalisedNameTester](#r0s33)|2 ✅|||1ms|
|
||||
|[FluentValidation.Tests.MemberAccessorTests](#r0s34)|9 ✅|||5ms|
|
||||
|[FluentValidation.Tests.MessageFormatterTests](#r0s35)|10 ✅|||2ms|
|
||||
|[FluentValidation.Tests.ModelLevelValidatorTests](#r0s36)|2 ✅|||1ms|
|
||||
|[FluentValidation.Tests.NameResolutionPluggabilityTester](#r0s37)|3 ✅|||2ms|
|
||||
|[FluentValidation.Tests.NotEmptyTester](#r0s38)|10 ✅|||7ms|
|
||||
|[FluentValidation.Tests.NotEqualValidatorTests](#r0s39)|11 ✅|||7ms|
|
||||
|[FluentValidation.Tests.NotNullTester](#r0s40)|5 ✅|||1ms|
|
||||
|[FluentValidation.Tests.NullTester](#r0s41)|5 ✅|||2ms|
|
||||
|[FluentValidation.Tests.OnFailureTests](#r0s42)|10 ✅|||8ms|
|
||||
|[FluentValidation.Tests.PredicateValidatorTester](#r0s43)|5 ✅|||2ms|
|
||||
|[FluentValidation.Tests.PropertyChainTests](#r0s44)|7 ✅|||1ms|
|
||||
|[FluentValidation.Tests.RegularExpressionValidatorTests](#r0s45)|15 ✅|||6ms|
|
||||
|[FluentValidation.Tests.RuleBuilderTests](#r0s46)|29 ✅|||96ms|
|
||||
|[FluentValidation.Tests.RuleDependencyTests](#r0s47)|14 ✅|||3s|
|
||||
|[FluentValidation.Tests.RulesetTests](#r0s48)|21 ✅|||14ms|
|
||||
|[FluentValidation.Tests.ScalePrecisionValidatorTests](#r0s49)|6 ✅|||4ms|
|
||||
|[FluentValidation.Tests.SharedConditionTests](#r0s50)|42 ✅|||42ms|
|
||||
|[FluentValidation.Tests.StandalonePropertyValidationTester](#r0s51)|1 ✅|||0ms|
|
||||
|[FluentValidation.Tests.StringEnumValidatorTests](#r0s52)|10 ✅|||5ms|
|
||||
|[FluentValidation.Tests.TrackingCollectionTests](#r0s53)|3 ✅|||2ms|
|
||||
|[FluentValidation.Tests.TransformTests](#r0s54)|4 ✅|||3ms|
|
||||
|[FluentValidation.Tests.UserSeverityTester](#r0s55)|7 ✅|||3ms|
|
||||
|[FluentValidation.Tests.UserStateTester](#r0s56)|4 ✅|||3ms|
|
||||
|[FluentValidation.Tests.ValidateAndThrowTester](#r0s57)|14 ✅|||25ms|
|
||||
|[FluentValidation.Tests.ValidationResultTests](#r0s58)|8 ✅|||8ms|
|
||||
|[FluentValidation.Tests.ValidatorDescriptorTester](#r0s59)|5 ✅|||1ms|
|
||||
|[FluentValidation.Tests.ValidatorSelectorTests](#r0s60)|10 ✅|||9ms|
|
||||
|[FluentValidation.Tests.ValidatorTesterTester](#r0s61)|73 ✅|||74ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#r0s0">FluentValidation.Tests.AbstractValidatorTester</a>
|
||||
```
|
||||
✅ Can_replace_default_errorcode_resolver
|
||||
@@ -1054,4 +1059,5 @@
|
||||
✅ Unexpected_message_check(withoutErrMsg: "bar", errMessages: [])
|
||||
✅ Unexpected_severity_check
|
||||
✅ Unexpected_state_check
|
||||
```
|
||||
```
|
||||
</details>
|
||||
17
__tests__/__outputs__/jest-junit-eslint.md
Normal file
17
__tests__/__outputs__/jest-junit-eslint.md
Normal file
@@ -0,0 +1,17 @@
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/jest-junit-eslint.xml|1 ✅|||0ms|
|
||||
## ✅ <a id="user-content-r0" href="#r0">fixtures/jest-junit-eslint.xml</a>
|
||||
**1** tests were completed in **0ms** with **1** passed, **0** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[test.jsx](#r0s0)|1 ✅|||0ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#r0s0">test.jsx</a>
|
||||
```
|
||||
test
|
||||
✅ test.jsx
|
||||
```
|
||||
</details>
|
||||
@@ -1,10 +1,13 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/jest-junit.xml|1 ✅|4 ❌|1 ⚪|1s|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/jest-junit.xml</a>
|
||||
**6** tests were completed in **1s** with **1** passed, **4** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[__tests__\main.test.js](#r0s0)|1✅|3❌||486ms|
|
||||
|[__tests__\second.test.js](#r0s1)||1❌|1⚪|82ms|
|
||||
|[__tests__\main.test.js](#r0s0)|1 ✅|3 ❌||486ms|
|
||||
|[__tests__\second.test.js](#r0s1)||1 ❌|1 ⚪|82ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">__tests__\main.test.js</a>
|
||||
```
|
||||
Test 1
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/jest/jest-react-component-test-results.xml|1 ✅|||1000ms|
|
||||
## ✅ <a id="user-content-r0" href="#r0">fixtures/external/jest/jest-react-component-test-results.xml</a>
|
||||
**1** tests were completed in **1000ms** with **1** passed, **0** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[\<Component /\>](#r0s0)|1✅|||798ms|
|
||||
|[\<Component /\>](#r0s0)|1 ✅|||798ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#r0s0">\<Component /\></a>
|
||||
```
|
||||
✅ <Component /> should render properly
|
||||
```
|
||||
```
|
||||
</details>
|
||||
@@ -1,408 +1,411 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/jest/jest-test-results.xml|4207 ✅|2 ❌|30 ⚪|166s|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/external/jest/jest-test-results.xml</a>
|
||||
**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-config/src/__tests__/readConfigs.test.ts|3✅|||135ms|
|
||||
|packages/jest-config/src/__tests__/resolveConfigPath.test.ts|10✅|||183ms|
|
||||
|packages/jest-config/src/__tests__/setFromArgv.test.ts|4✅|||53ms|
|
||||
|packages/jest-config/src/__tests__/validatePattern.test.ts|4✅|||52ms|
|
||||
|packages/jest-console/src/__tests__/bufferedConsole.test.ts|20✅|||171ms|
|
||||
|packages/jest-console/src/__tests__/CustomConsole.test.ts|23✅|||115ms|
|
||||
|packages/jest-console/src/__tests__/getConsoleOutput.test.ts|12✅|||56ms|
|
||||
|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|
|
||||
|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-config/src/__tests__/readConfigs.test.ts|3 ✅|||135ms|
|
||||
|packages/jest-config/src/__tests__/resolveConfigPath.test.ts|10 ✅|||183ms|
|
||||
|packages/jest-config/src/__tests__/setFromArgv.test.ts|4 ✅|||53ms|
|
||||
|packages/jest-config/src/__tests__/validatePattern.test.ts|4 ✅|||52ms|
|
||||
|packages/jest-console/src/__tests__/bufferedConsole.test.ts|20 ✅|||171ms|
|
||||
|packages/jest-console/src/__tests__/CustomConsole.test.ts|23 ✅|||115ms|
|
||||
|packages/jest-console/src/__tests__/getConsoleOutput.test.ts|12 ✅|||56ms|
|
||||
|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>
|
||||
```
|
||||
✅ gets hg SCM roots and dedupes them
|
||||
|
||||
15
__tests__/__outputs__/junit-with-message.md
Normal file
15
__tests__/__outputs__/junit-with-message.md
Normal file
@@ -0,0 +1,15 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/junit-with-message.xml||1 ❌||1ms|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/junit-with-message.xml</a>
|
||||
**1** tests were completed in **1ms** with **0** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[Test](#r0s0)||1 ❌||1ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">Test</a>
|
||||
```
|
||||
Fails
|
||||
❌ Test
|
||||
error.cpp:01
|
||||
```
|
||||
@@ -1,10 +1,13 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/mocha-json.json|1 ✅|4 ❌|1 ⚪|12ms|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/mocha-json.json</a>
|
||||
**6** tests were completed in **12ms** with **1** passed, **4** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[test/main.test.js](#r0s0)|1✅|3❌||1ms|
|
||||
|[test/second.test.js](#r0s1)||1❌|1⚪|8ms|
|
||||
|[test/main.test.js](#r0s0)|1 ✅|3 ❌||1ms|
|
||||
|[test/second.test.js](#r0s1)||1 ❌|1 ⚪|8ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">test/main.test.js</a>
|
||||
```
|
||||
Test 1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,24 +1,27 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/flutter/provider-test-results.json|268 ✅|1 ❌||0ms|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/external/flutter/provider-test-results.json</a>
|
||||
**269** tests were completed in **0ms** with **268** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[test/builder_test.dart](#r0s0)|24✅|||402ms|
|
||||
|[test/change_notifier_provider_test.dart](#r0s1)|10✅|||306ms|
|
||||
|[test/consumer_test.dart](#r0s2)|18✅|||340ms|
|
||||
|[test/context_test.dart](#r0s3)|31✅|||698ms|
|
||||
|[test/future_provider_test.dart](#r0s4)|10✅|||305ms|
|
||||
|[test/inherited_provider_test.dart](#r0s5)|81✅|||1s|
|
||||
|[test/listenable_provider_test.dart](#r0s6)|16✅|||353ms|
|
||||
|[test/listenable_proxy_provider_test.dart](#r0s7)|12✅|||373ms|
|
||||
|[test/multi_provider_test.dart](#r0s8)|3✅|||198ms|
|
||||
|[test/provider_test.dart](#r0s9)|11✅|||306ms|
|
||||
|[test/proxy_provider_test.dart](#r0s10)|16✅|||438ms|
|
||||
|[test/reassemble_test.dart](#r0s11)|3✅|||221ms|
|
||||
|[test/selector_test.dart](#r0s12)|17✅|||364ms|
|
||||
|[test/stateful_provider_test.dart](#r0s13)|4✅|||254ms|
|
||||
|[test/stream_provider_test.dart](#r0s14)|8✅|||282ms|
|
||||
|[test/value_listenable_provider_test.dart](#r0s15)|4✅|1❌||327ms|
|
||||
|[test/builder_test.dart](#r0s0)|24 ✅|||402ms|
|
||||
|[test/change_notifier_provider_test.dart](#r0s1)|10 ✅|||306ms|
|
||||
|[test/consumer_test.dart](#r0s2)|18 ✅|||340ms|
|
||||
|[test/context_test.dart](#r0s3)|31 ✅|||698ms|
|
||||
|[test/future_provider_test.dart](#r0s4)|10 ✅|||305ms|
|
||||
|[test/inherited_provider_test.dart](#r0s5)|81 ✅|||1s|
|
||||
|[test/listenable_provider_test.dart](#r0s6)|16 ✅|||353ms|
|
||||
|[test/listenable_proxy_provider_test.dart](#r0s7)|12 ✅|||373ms|
|
||||
|[test/multi_provider_test.dart](#r0s8)|3 ✅|||198ms|
|
||||
|[test/provider_test.dart](#r0s9)|11 ✅|||306ms|
|
||||
|[test/proxy_provider_test.dart](#r0s10)|16 ✅|||438ms|
|
||||
|[test/reassemble_test.dart](#r0s11)|3 ✅|||221ms|
|
||||
|[test/selector_test.dart](#r0s12)|17 ✅|||364ms|
|
||||
|[test/stateful_provider_test.dart](#r0s13)|4 ✅|||254ms|
|
||||
|[test/stream_provider_test.dart](#r0s14)|8 ✅|||282ms|
|
||||
|[test/value_listenable_provider_test.dart](#r0s15)|4 ✅|1 ❌||327ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#r0s0">test/builder_test.dart</a>
|
||||
```
|
||||
ChangeNotifierProvider
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml||1 ❌|1 ⚪|116ms|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml</a>
|
||||
**2** tests were completed in **116ms** with **0** passed, **1** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[org.apache.pulsar.AddMissingPatchVersionTest](#r0s0)||1❌|1⚪|116ms|
|
||||
|[org.apache.pulsar.AddMissingPatchVersionTest](#r0s0)||1 ❌|1 ⚪|116ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">org.apache.pulsar.AddMissingPatchVersionTest</a>
|
||||
```
|
||||
⚪ testVersionStrings
|
||||
|
||||
@@ -1,184 +1,187 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/java/pulsar-test-report.xml|793 ✅|1 ❌|14 ⚪|2127s|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/external/java/pulsar-test-report.xml</a>
|
||||
**808** tests were completed in **2127s** with **793** passed, **1** failed and **14** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[org.apache.pulsar.AddMissingPatchVersionTest](#r0s0)||1❌|1⚪|116ms|
|
||||
|[org.apache.pulsar.broker.admin.AdminApiOffloadTest](#r0s1)|7✅|||19s|
|
||||
|[org.apache.pulsar.broker.auth.AuthenticationServiceTest](#r0s2)|2✅|||185ms|
|
||||
|[org.apache.pulsar.broker.auth.AuthLogsTest](#r0s3)|2✅|||1s|
|
||||
|[org.apache.pulsar.broker.auth.AuthorizationTest](#r0s4)|1✅|||2s|
|
||||
|[org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test](#r0s5)|4✅|||2s|
|
||||
|[org.apache.pulsar.broker.namespace.NamespaceCreateBundlesTest](#r0s6)|2✅|||33s|
|
||||
|[org.apache.pulsar.broker.namespace.NamespaceOwnershipListenerTests](#r0s7)|2✅|||32s|
|
||||
|[org.apache.pulsar.broker.namespace.NamespaceServiceTest](#r0s8)|10✅|||75s|
|
||||
|[org.apache.pulsar.broker.namespace.NamespaceUnloadingTest](#r0s9)|2✅|||14s|
|
||||
|[org.apache.pulsar.broker.namespace.OwnerShipCacheForCurrentServerTest](#r0s10)|1✅|||16s|
|
||||
|[org.apache.pulsar.broker.namespace.OwnershipCacheTest](#r0s11)|8✅|||16s|
|
||||
|[org.apache.pulsar.broker.protocol.ProtocolHandlersTest](#r0s12)|6✅|||946ms|
|
||||
|[org.apache.pulsar.broker.protocol.ProtocolHandlerUtilsTest](#r0s13)|3✅|||7s|
|
||||
|[org.apache.pulsar.broker.protocol.ProtocolHandlerWithClassLoaderTest](#r0s14)|1✅|||15ms|
|
||||
|[org.apache.pulsar.broker.PulsarServiceTest](#r0s15)|2✅|||96ms|
|
||||
|[org.apache.pulsar.broker.service.MessagePublishBufferThrottleTest](#r0s16)|3✅|||14s|
|
||||
|[org.apache.pulsar.broker.service.ReplicatorTest](#r0s17)|22✅|||40s|
|
||||
|[org.apache.pulsar.broker.service.TopicOwnerTest](#r0s18)|8✅|||114s|
|
||||
|[org.apache.pulsar.broker.SLAMonitoringTest](#r0s19)|4✅|||9s|
|
||||
|[org.apache.pulsar.broker.stats.BookieClientsStatsGeneratorTest](#r0s20)|2✅|||49ms|
|
||||
|[org.apache.pulsar.broker.stats.ConsumerStatsTest](#r0s21)|3✅|||21s|
|
||||
|[org.apache.pulsar.broker.stats.ManagedCursorMetricsTest](#r0s22)|1✅|||281ms|
|
||||
|[org.apache.pulsar.broker.stats.ManagedLedgerMetricsTest](#r0s23)|1✅|||285ms|
|
||||
|[org.apache.pulsar.broker.stats.prometheus.AggregatedNamespaceStatsTest](#r0s24)|1✅|||40ms|
|
||||
|[org.apache.pulsar.broker.stats.PrometheusMetricsTest](#r0s25)|15✅|||83s|
|
||||
|[org.apache.pulsar.broker.stats.SubscriptionStatsTest](#r0s26)|2✅|||2s|
|
||||
|[org.apache.pulsar.broker.systopic.NamespaceEventsSystemTopicServiceTest](#r0s27)|1✅|||1s|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.InMemTransactionBufferReaderTest](#r0s28)|3✅|||28ms|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest](#r0s29)|4✅|||93ms|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest](#r0s30)|7✅|||81ms|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.TransactionEntryImplTest](#r0s31)|1✅|||14ms|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.TransactionLowWaterMarkTest](#r0s32)|2✅|||38s|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.TransactionStablePositionTest](#r0s33)|2✅||1⚪|49s|
|
||||
|[org.apache.pulsar.broker.transaction.coordinator.TransactionCoordinatorClientTest](#r0s34)|3✅|||95ms|
|
||||
|[org.apache.pulsar.broker.transaction.coordinator.TransactionMetaStoreAssignmentTest](#r0s35)|1✅|||1s|
|
||||
|[org.apache.pulsar.broker.transaction.pendingack.PendingAckInMemoryDeleteTest](#r0s36)|2✅||1⚪|57s|
|
||||
|[org.apache.pulsar.broker.transaction.TransactionConsumeTest](#r0s37)|2✅|||30s|
|
||||
|[org.apache.pulsar.broker.web.RestExceptionTest](#r0s38)|3✅|||37ms|
|
||||
|[org.apache.pulsar.broker.web.WebServiceTest](#r0s39)|9✅|||27s|
|
||||
|[org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest](#r0s40)|4✅|||8s|
|
||||
|[org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest](#r0s41)|4✅|||30ms|
|
||||
|[org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest](#r0s42)|4✅|||14s|
|
||||
|[org.apache.pulsar.client.impl.BatchMessageIndexAckTest](#r0s43)|5✅|||44s|
|
||||
|[org.apache.pulsar.client.impl.BrokerClientIntegrationTest](#r0s44)|15✅|||148s|
|
||||
|[org.apache.pulsar.client.impl.CompactedOutBatchMessageTest](#r0s45)|1✅|||1s|
|
||||
|[org.apache.pulsar.client.impl.ConsumerAckResponseTest](#r0s46)|1✅|||549ms|
|
||||
|[org.apache.pulsar.client.impl.ConsumerConfigurationTest](#r0s47)|4✅|||12s|
|
||||
|[org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate](#r0s48)|7✅|||4s|
|
||||
|[org.apache.pulsar.client.impl.ConsumerUnsubscribeTest](#r0s49)|1✅|||129ms|
|
||||
|[org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithAuth](#r0s50)|3✅|||23s|
|
||||
|[org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithoutAuth](#r0s51)|3✅|||8s|
|
||||
|[org.apache.pulsar.client.impl.KeyStoreTlsTest](#r0s52)|1✅|||183ms|
|
||||
|[org.apache.pulsar.client.impl.MessageChecksumTest](#r0s53)|3✅|||47s|
|
||||
|[org.apache.pulsar.client.impl.MessageChunkingTest](#r0s54)|8✅||1⚪|73s|
|
||||
|[org.apache.pulsar.client.impl.MessageParserTest](#r0s55)|2✅|||5s|
|
||||
|[org.apache.pulsar.client.impl.MultiTopicsReaderTest](#r0s56)|8✅|||35s|
|
||||
|[org.apache.pulsar.client.impl.NegativeAcksTest](#r0s57)|32✅|||11s|
|
||||
|[org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest](#r0s58)|11✅|||63s|
|
||||
|[org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest](#r0s59)|5✅|||34s|
|
||||
|[org.apache.pulsar.client.impl.PulsarMultiHostClientTest](#r0s60)|3✅|||15s|
|
||||
|[org.apache.pulsar.client.impl.RawMessageSerDeserTest](#r0s61)|1✅|||10ms|
|
||||
|[org.apache.pulsar.client.impl.SchemaDeleteTest](#r0s62)|1✅|||2s|
|
||||
|[org.apache.pulsar.client.impl.SequenceIdWithErrorTest](#r0s63)|3✅||2⚪|18s|
|
||||
|[org.apache.pulsar.client.impl.TopicDoesNotExistsTest](#r0s64)|2✅|||4s|
|
||||
|[org.apache.pulsar.client.impl.TopicFromMessageTest](#r0s65)|5✅|||14s|
|
||||
|[org.apache.pulsar.client.impl.TopicsConsumerImplTest](#r0s66)|17✅|||133s|
|
||||
|[org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest](#r0s67)|7✅|||44s|
|
||||
|[org.apache.pulsar.client.impl.ZeroQueueSizeTest](#r0s68)|14✅|||16s|
|
||||
|[org.apache.pulsar.common.api.raw.RawMessageImplTest](#r0s69)|1✅|||316ms|
|
||||
|[org.apache.pulsar.common.compression.CommandsTest](#r0s70)|1✅|||30ms|
|
||||
|[org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest](#r0s71)|6✅|||223ms|
|
||||
|[org.apache.pulsar.common.compression.CompressorCodecTest](#r0s72)|45✅|||737ms|
|
||||
|[org.apache.pulsar.common.compression.Crc32cChecksumTest](#r0s73)|6✅|||5s|
|
||||
|[org.apache.pulsar.common.lookup.data.LookupDataTest](#r0s74)|4✅|||2s|
|
||||
|[org.apache.pulsar.common.naming.MetadataTests](#r0s75)|2✅|||161ms|
|
||||
|[org.apache.pulsar.common.naming.NamespaceBundlesTest](#r0s76)|5✅|||99ms|
|
||||
|[org.apache.pulsar.common.naming.NamespaceBundleTest](#r0s77)|6✅|||64ms|
|
||||
|[org.apache.pulsar.common.naming.NamespaceNameTest](#r0s78)|2✅|||207ms|
|
||||
|[org.apache.pulsar.common.naming.ServiceConfigurationTest](#r0s79)|4✅|||48ms|
|
||||
|[org.apache.pulsar.common.naming.TopicNameTest](#r0s80)|4✅|||529ms|
|
||||
|[org.apache.pulsar.common.net.ServiceURITest](#r0s81)|21✅|||237ms|
|
||||
|[org.apache.pulsar.common.policies.data.AutoFailoverPolicyDataTest](#r0s82)|1✅|||15ms|
|
||||
|[org.apache.pulsar.common.policies.data.AutoFailoverPolicyTypeTest](#r0s83)|1✅|||19ms|
|
||||
|[org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest](#r0s84)|6✅|||64ms|
|
||||
|[org.apache.pulsar.common.policies.data.BacklogQuotaTest](#r0s85)|1✅|||12ms|
|
||||
|[org.apache.pulsar.common.policies.data.ClusterDataTest](#r0s86)|1✅|||9ms|
|
||||
|[org.apache.pulsar.common.policies.data.ConsumerStatsTest](#r0s87)|1✅|||8ms|
|
||||
|[org.apache.pulsar.common.policies.data.EnsemblePlacementPolicyConfigTest](#r0s88)|2✅|||948ms|
|
||||
|[org.apache.pulsar.common.policies.data.LocalPolicesTest](#r0s89)|1✅|||48ms|
|
||||
|[org.apache.pulsar.common.policies.data.NamespaceIsolationDataTest](#r0s90)|1✅|||76ms|
|
||||
|[org.apache.pulsar.common.policies.data.NamespaceOwnershipStatusTest](#r0s91)|1✅|||45ms|
|
||||
|[org.apache.pulsar.common.policies.data.OffloadPoliciesTest](#r0s92)|6✅|||216ms|
|
||||
|[org.apache.pulsar.common.policies.data.PartitionedTopicStatsTest](#r0s93)|1✅|||12ms|
|
||||
|[org.apache.pulsar.common.policies.data.PersistencePoliciesTest](#r0s94)|1✅|||19ms|
|
||||
|[org.apache.pulsar.common.policies.data.PersistentOfflineTopicStatsTest](#r0s95)|1✅|||29ms|
|
||||
|[org.apache.pulsar.common.policies.data.PersistentTopicStatsTest](#r0s96)|2✅|||51ms|
|
||||
|[org.apache.pulsar.common.policies.data.PoliciesDataTest](#r0s97)|4✅|||1s|
|
||||
|[org.apache.pulsar.common.policies.data.PublisherStatsTest](#r0s98)|2✅|||37ms|
|
||||
|[org.apache.pulsar.common.policies.data.ReplicatorStatsTest](#r0s99)|2✅|||30ms|
|
||||
|[org.apache.pulsar.common.policies.data.ResourceQuotaTest](#r0s100)|2✅|||45ms|
|
||||
|[org.apache.pulsar.common.policies.data.RetentionPolicesTest](#r0s101)|1✅|||8ms|
|
||||
|[org.apache.pulsar.common.policies.impl.AutoFailoverPolicyFactoryTest](#r0s102)|1✅|||22ms|
|
||||
|[org.apache.pulsar.common.policies.impl.MinAvailablePolicyTest](#r0s103)|1✅|||1ms|
|
||||
|[org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest](#r0s104)|7✅|||265ms|
|
||||
|[org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest](#r0s105)|7✅|||309ms|
|
||||
|[org.apache.pulsar.common.protocol.ByteBufPairTest](#r0s106)|2✅|||5s|
|
||||
|[org.apache.pulsar.common.protocol.CommandUtilsTests](#r0s107)|7✅|||3s|
|
||||
|[org.apache.pulsar.common.protocol.MarkersTest](#r0s108)|6✅|||3s|
|
||||
|[org.apache.pulsar.common.protocol.PulsarDecoderTest](#r0s109)|1✅|||4s|
|
||||
|[org.apache.pulsar.common.stats.JvmDefaultGCMetricsLoggerTest](#r0s110)|1✅|||82ms|
|
||||
|[org.apache.pulsar.common.util.collections.BitSetRecyclableRecyclableTest](#r0s111)|2✅|||13ms|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentBitSetRecyclableTest](#r0s112)|2✅|||63ms|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest](#r0s113)|13✅|||28s|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest](#r0s114)|15✅|||2s|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest](#r0s115)|12✅|||9s|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest](#r0s116)|11✅|||7s|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest](#r0s117)|13✅|||1s|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest](#r0s118)|9✅|||342ms|
|
||||
|[org.apache.pulsar.common.util.collections.FieldParserTest](#r0s119)|2✅|||64ms|
|
||||
|[org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest](#r0s120)|6✅|||350ms|
|
||||
|[org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest](#r0s121)|15✅|||3s|
|
||||
|[org.apache.pulsar.common.util.collections.TripleLongPriorityQueueTest](#r0s122)|3✅|||238ms|
|
||||
|[org.apache.pulsar.common.util.FieldParserTest](#r0s123)|1✅|||242ms|
|
||||
|[org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest](#r0s124)|6✅|||6s|
|
||||
|[org.apache.pulsar.common.util.netty.ChannelFuturesTest](#r0s125)|5✅|||2s|
|
||||
|[org.apache.pulsar.common.util.RateLimiterTest](#r0s126)|11✅|||7s|
|
||||
|[org.apache.pulsar.common.util.ReflectionsTest](#r0s127)|12✅|||172ms|
|
||||
|[org.apache.pulsar.common.util.RelativeTimeUtilTest](#r0s128)|1✅|||39ms|
|
||||
|[org.apache.pulsar.discovery.service.web.DiscoveryServiceWebTest](#r0s129)|1✅|||5s|
|
||||
|[org.apache.pulsar.functions.worker.PulsarFunctionE2ESecurityTest](#r0s130)|2✅|||28s|
|
||||
|[org.apache.pulsar.functions.worker.PulsarFunctionPublishTest](#r0s131)|3✅|||42s|
|
||||
|[org.apache.pulsar.functions.worker.PulsarFunctionTlsTest](#r0s132)|1✅|||12s|
|
||||
|[org.apache.pulsar.io.PulsarFunctionTlsTest](#r0s133)|1✅|||30s|
|
||||
|[org.apache.pulsar.proxy.server.AdminProxyHandlerTest](#r0s134)|1✅|||474ms|
|
||||
|[org.apache.pulsar.proxy.server.AuthedAdminProxyHandlerTest](#r0s135)|1✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.FunctionWorkerRoutingTest](#r0s136)|1✅|||10ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyAdditionalServletTest](#r0s137)|1✅|||125ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyAuthenticatedProducerConsumerTest](#r0s138)|1✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyAuthenticationTest](#r0s139)|1✅|||17s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyConnectionThrottlingTest](#r0s140)|1✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyEnableHAProxyProtocolTest](#r0s141)|1✅|||511ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyForwardAuthDataTest](#r0s142)|1✅|||32s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest](#r0s143)|10✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithAuth](#r0s144)|3✅|||7s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithoutAuth](#r0s145)|3✅|||7s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyLookupThrottlingTest](#r0s146)|1✅|||3s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyParserTest](#r0s147)|5✅|||1s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyRolesEnforcementTest](#r0s148)|1✅|||10s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyStatsTest](#r0s149)|3✅|||533ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyTest](#r0s150)|6✅|||3s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyTlsTest](#r0s151)|2✅|||414ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyTlsTestWithAuth](#r0s152)|1✅|||4ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyWithAuthorizationNegTest](#r0s153)|1✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest](#r0s154)|13✅|||33s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyWithoutServiceDiscoveryTest](#r0s155)|1✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.SuperUserAuthedAdminProxyHandlerTest](#r0s156)|3✅|||8s|
|
||||
|[org.apache.pulsar.proxy.server.UnauthedAdminProxyHandlerTest](#r0s157)|2✅|||114ms|
|
||||
|[org.apache.pulsar.PulsarBrokerStarterTest](#r0s158)|9✅|||591ms|
|
||||
|[org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest](#r0s159)|23✅|||107s|
|
||||
|[org.apache.pulsar.schema.PartitionedTopicSchemaTest](#r0s160)|1✅|||29s|
|
||||
|[org.apache.pulsar.schema.SchemaTest](#r0s161)|3✅|||31s|
|
||||
|[org.apache.pulsar.stats.client.PulsarBrokerStatsClientTest](#r0s162)|2✅|||41s|
|
||||
|[org.apache.pulsar.tests.EnumValuesDataProviderTest](#r0s163)|6✅|||23ms|
|
||||
|[org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest](#r0s164)|1✅||4⚪|36ms|
|
||||
|[org.apache.pulsar.tests.TestRetrySupportRetryTest](#r0s165)|1✅||4⚪|27ms|
|
||||
|[org.apache.pulsar.tests.TestRetrySupportSuccessTest](#r0s166)|3✅|||1ms|
|
||||
|[org.apache.pulsar.tests.ThreadDumpUtilTest](#r0s167)|2✅|||17ms|
|
||||
|[org.apache.pulsar.utils.SimpleTextOutputStreamTest](#r0s168)|4✅|||50ms|
|
||||
|[org.apache.pulsar.utils.StatsOutputStreamTest](#r0s169)|6✅|||59ms|
|
||||
|[org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest](#r0s170)|4✅|||29s|
|
||||
|[org.apache.pulsar.websocket.proxy.ProxyAuthorizationTest](#r0s171)|1✅|||1s|
|
||||
|[org.apache.pulsar.websocket.proxy.ProxyConfigurationTest](#r0s172)|2✅|||9s|
|
||||
|[org.apache.pulsar.websocket.proxy.ProxyPublishConsumeTlsTest](#r0s173)|1✅|||11s|
|
||||
|[org.apache.pulsar.websocket.proxy.ProxyPublishConsumeWithoutZKTest](#r0s174)|1✅|||7s|
|
||||
|[org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest](#r0s175)|4✅|||30s|
|
||||
|[org.apache.pulsar.AddMissingPatchVersionTest](#r0s0)||1 ❌|1 ⚪|116ms|
|
||||
|[org.apache.pulsar.broker.admin.AdminApiOffloadTest](#r0s1)|7 ✅|||19s|
|
||||
|[org.apache.pulsar.broker.auth.AuthenticationServiceTest](#r0s2)|2 ✅|||185ms|
|
||||
|[org.apache.pulsar.broker.auth.AuthLogsTest](#r0s3)|2 ✅|||1s|
|
||||
|[org.apache.pulsar.broker.auth.AuthorizationTest](#r0s4)|1 ✅|||2s|
|
||||
|[org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test](#r0s5)|4 ✅|||2s|
|
||||
|[org.apache.pulsar.broker.namespace.NamespaceCreateBundlesTest](#r0s6)|2 ✅|||33s|
|
||||
|[org.apache.pulsar.broker.namespace.NamespaceOwnershipListenerTests](#r0s7)|2 ✅|||32s|
|
||||
|[org.apache.pulsar.broker.namespace.NamespaceServiceTest](#r0s8)|10 ✅|||75s|
|
||||
|[org.apache.pulsar.broker.namespace.NamespaceUnloadingTest](#r0s9)|2 ✅|||14s|
|
||||
|[org.apache.pulsar.broker.namespace.OwnerShipCacheForCurrentServerTest](#r0s10)|1 ✅|||16s|
|
||||
|[org.apache.pulsar.broker.namespace.OwnershipCacheTest](#r0s11)|8 ✅|||16s|
|
||||
|[org.apache.pulsar.broker.protocol.ProtocolHandlersTest](#r0s12)|6 ✅|||946ms|
|
||||
|[org.apache.pulsar.broker.protocol.ProtocolHandlerUtilsTest](#r0s13)|3 ✅|||7s|
|
||||
|[org.apache.pulsar.broker.protocol.ProtocolHandlerWithClassLoaderTest](#r0s14)|1 ✅|||15ms|
|
||||
|[org.apache.pulsar.broker.PulsarServiceTest](#r0s15)|2 ✅|||96ms|
|
||||
|[org.apache.pulsar.broker.service.MessagePublishBufferThrottleTest](#r0s16)|3 ✅|||14s|
|
||||
|[org.apache.pulsar.broker.service.ReplicatorTest](#r0s17)|22 ✅|||40s|
|
||||
|[org.apache.pulsar.broker.service.TopicOwnerTest](#r0s18)|8 ✅|||114s|
|
||||
|[org.apache.pulsar.broker.SLAMonitoringTest](#r0s19)|4 ✅|||9s|
|
||||
|[org.apache.pulsar.broker.stats.BookieClientsStatsGeneratorTest](#r0s20)|2 ✅|||49ms|
|
||||
|[org.apache.pulsar.broker.stats.ConsumerStatsTest](#r0s21)|3 ✅|||21s|
|
||||
|[org.apache.pulsar.broker.stats.ManagedCursorMetricsTest](#r0s22)|1 ✅|||281ms|
|
||||
|[org.apache.pulsar.broker.stats.ManagedLedgerMetricsTest](#r0s23)|1 ✅|||285ms|
|
||||
|[org.apache.pulsar.broker.stats.prometheus.AggregatedNamespaceStatsTest](#r0s24)|1 ✅|||40ms|
|
||||
|[org.apache.pulsar.broker.stats.PrometheusMetricsTest](#r0s25)|15 ✅|||83s|
|
||||
|[org.apache.pulsar.broker.stats.SubscriptionStatsTest](#r0s26)|2 ✅|||2s|
|
||||
|[org.apache.pulsar.broker.systopic.NamespaceEventsSystemTopicServiceTest](#r0s27)|1 ✅|||1s|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.InMemTransactionBufferReaderTest](#r0s28)|3 ✅|||28ms|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest](#r0s29)|4 ✅|||93ms|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest](#r0s30)|7 ✅|||81ms|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.TransactionEntryImplTest](#r0s31)|1 ✅|||14ms|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.TransactionLowWaterMarkTest](#r0s32)|2 ✅|||38s|
|
||||
|[org.apache.pulsar.broker.transaction.buffer.TransactionStablePositionTest](#r0s33)|2 ✅||1 ⚪|49s|
|
||||
|[org.apache.pulsar.broker.transaction.coordinator.TransactionCoordinatorClientTest](#r0s34)|3 ✅|||95ms|
|
||||
|[org.apache.pulsar.broker.transaction.coordinator.TransactionMetaStoreAssignmentTest](#r0s35)|1 ✅|||1s|
|
||||
|[org.apache.pulsar.broker.transaction.pendingack.PendingAckInMemoryDeleteTest](#r0s36)|2 ✅||1 ⚪|57s|
|
||||
|[org.apache.pulsar.broker.transaction.TransactionConsumeTest](#r0s37)|2 ✅|||30s|
|
||||
|[org.apache.pulsar.broker.web.RestExceptionTest](#r0s38)|3 ✅|||37ms|
|
||||
|[org.apache.pulsar.broker.web.WebServiceTest](#r0s39)|9 ✅|||27s|
|
||||
|[org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest](#r0s40)|4 ✅|||8s|
|
||||
|[org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest](#r0s41)|4 ✅|||30ms|
|
||||
|[org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest](#r0s42)|4 ✅|||14s|
|
||||
|[org.apache.pulsar.client.impl.BatchMessageIndexAckTest](#r0s43)|5 ✅|||44s|
|
||||
|[org.apache.pulsar.client.impl.BrokerClientIntegrationTest](#r0s44)|15 ✅|||148s|
|
||||
|[org.apache.pulsar.client.impl.CompactedOutBatchMessageTest](#r0s45)|1 ✅|||1s|
|
||||
|[org.apache.pulsar.client.impl.ConsumerAckResponseTest](#r0s46)|1 ✅|||549ms|
|
||||
|[org.apache.pulsar.client.impl.ConsumerConfigurationTest](#r0s47)|4 ✅|||12s|
|
||||
|[org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate](#r0s48)|7 ✅|||4s|
|
||||
|[org.apache.pulsar.client.impl.ConsumerUnsubscribeTest](#r0s49)|1 ✅|||129ms|
|
||||
|[org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithAuth](#r0s50)|3 ✅|||23s|
|
||||
|[org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithoutAuth](#r0s51)|3 ✅|||8s|
|
||||
|[org.apache.pulsar.client.impl.KeyStoreTlsTest](#r0s52)|1 ✅|||183ms|
|
||||
|[org.apache.pulsar.client.impl.MessageChecksumTest](#r0s53)|3 ✅|||47s|
|
||||
|[org.apache.pulsar.client.impl.MessageChunkingTest](#r0s54)|8 ✅||1 ⚪|73s|
|
||||
|[org.apache.pulsar.client.impl.MessageParserTest](#r0s55)|2 ✅|||5s|
|
||||
|[org.apache.pulsar.client.impl.MultiTopicsReaderTest](#r0s56)|8 ✅|||35s|
|
||||
|[org.apache.pulsar.client.impl.NegativeAcksTest](#r0s57)|32 ✅|||11s|
|
||||
|[org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest](#r0s58)|11 ✅|||63s|
|
||||
|[org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest](#r0s59)|5 ✅|||34s|
|
||||
|[org.apache.pulsar.client.impl.PulsarMultiHostClientTest](#r0s60)|3 ✅|||15s|
|
||||
|[org.apache.pulsar.client.impl.RawMessageSerDeserTest](#r0s61)|1 ✅|||10ms|
|
||||
|[org.apache.pulsar.client.impl.SchemaDeleteTest](#r0s62)|1 ✅|||2s|
|
||||
|[org.apache.pulsar.client.impl.SequenceIdWithErrorTest](#r0s63)|3 ✅||2 ⚪|18s|
|
||||
|[org.apache.pulsar.client.impl.TopicDoesNotExistsTest](#r0s64)|2 ✅|||4s|
|
||||
|[org.apache.pulsar.client.impl.TopicFromMessageTest](#r0s65)|5 ✅|||14s|
|
||||
|[org.apache.pulsar.client.impl.TopicsConsumerImplTest](#r0s66)|17 ✅|||133s|
|
||||
|[org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest](#r0s67)|7 ✅|||44s|
|
||||
|[org.apache.pulsar.client.impl.ZeroQueueSizeTest](#r0s68)|14 ✅|||16s|
|
||||
|[org.apache.pulsar.common.api.raw.RawMessageImplTest](#r0s69)|1 ✅|||316ms|
|
||||
|[org.apache.pulsar.common.compression.CommandsTest](#r0s70)|1 ✅|||30ms|
|
||||
|[org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest](#r0s71)|6 ✅|||223ms|
|
||||
|[org.apache.pulsar.common.compression.CompressorCodecTest](#r0s72)|45 ✅|||737ms|
|
||||
|[org.apache.pulsar.common.compression.Crc32cChecksumTest](#r0s73)|6 ✅|||5s|
|
||||
|[org.apache.pulsar.common.lookup.data.LookupDataTest](#r0s74)|4 ✅|||2s|
|
||||
|[org.apache.pulsar.common.naming.MetadataTests](#r0s75)|2 ✅|||161ms|
|
||||
|[org.apache.pulsar.common.naming.NamespaceBundlesTest](#r0s76)|5 ✅|||99ms|
|
||||
|[org.apache.pulsar.common.naming.NamespaceBundleTest](#r0s77)|6 ✅|||64ms|
|
||||
|[org.apache.pulsar.common.naming.NamespaceNameTest](#r0s78)|2 ✅|||207ms|
|
||||
|[org.apache.pulsar.common.naming.ServiceConfigurationTest](#r0s79)|4 ✅|||48ms|
|
||||
|[org.apache.pulsar.common.naming.TopicNameTest](#r0s80)|4 ✅|||529ms|
|
||||
|[org.apache.pulsar.common.net.ServiceURITest](#r0s81)|21 ✅|||237ms|
|
||||
|[org.apache.pulsar.common.policies.data.AutoFailoverPolicyDataTest](#r0s82)|1 ✅|||15ms|
|
||||
|[org.apache.pulsar.common.policies.data.AutoFailoverPolicyTypeTest](#r0s83)|1 ✅|||19ms|
|
||||
|[org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest](#r0s84)|6 ✅|||64ms|
|
||||
|[org.apache.pulsar.common.policies.data.BacklogQuotaTest](#r0s85)|1 ✅|||12ms|
|
||||
|[org.apache.pulsar.common.policies.data.ClusterDataTest](#r0s86)|1 ✅|||9ms|
|
||||
|[org.apache.pulsar.common.policies.data.ConsumerStatsTest](#r0s87)|1 ✅|||8ms|
|
||||
|[org.apache.pulsar.common.policies.data.EnsemblePlacementPolicyConfigTest](#r0s88)|2 ✅|||948ms|
|
||||
|[org.apache.pulsar.common.policies.data.LocalPolicesTest](#r0s89)|1 ✅|||48ms|
|
||||
|[org.apache.pulsar.common.policies.data.NamespaceIsolationDataTest](#r0s90)|1 ✅|||76ms|
|
||||
|[org.apache.pulsar.common.policies.data.NamespaceOwnershipStatusTest](#r0s91)|1 ✅|||45ms|
|
||||
|[org.apache.pulsar.common.policies.data.OffloadPoliciesTest](#r0s92)|6 ✅|||216ms|
|
||||
|[org.apache.pulsar.common.policies.data.PartitionedTopicStatsTest](#r0s93)|1 ✅|||12ms|
|
||||
|[org.apache.pulsar.common.policies.data.PersistencePoliciesTest](#r0s94)|1 ✅|||19ms|
|
||||
|[org.apache.pulsar.common.policies.data.PersistentOfflineTopicStatsTest](#r0s95)|1 ✅|||29ms|
|
||||
|[org.apache.pulsar.common.policies.data.PersistentTopicStatsTest](#r0s96)|2 ✅|||51ms|
|
||||
|[org.apache.pulsar.common.policies.data.PoliciesDataTest](#r0s97)|4 ✅|||1s|
|
||||
|[org.apache.pulsar.common.policies.data.PublisherStatsTest](#r0s98)|2 ✅|||37ms|
|
||||
|[org.apache.pulsar.common.policies.data.ReplicatorStatsTest](#r0s99)|2 ✅|||30ms|
|
||||
|[org.apache.pulsar.common.policies.data.ResourceQuotaTest](#r0s100)|2 ✅|||45ms|
|
||||
|[org.apache.pulsar.common.policies.data.RetentionPolicesTest](#r0s101)|1 ✅|||8ms|
|
||||
|[org.apache.pulsar.common.policies.impl.AutoFailoverPolicyFactoryTest](#r0s102)|1 ✅|||22ms|
|
||||
|[org.apache.pulsar.common.policies.impl.MinAvailablePolicyTest](#r0s103)|1 ✅|||1ms|
|
||||
|[org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest](#r0s104)|7 ✅|||265ms|
|
||||
|[org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest](#r0s105)|7 ✅|||309ms|
|
||||
|[org.apache.pulsar.common.protocol.ByteBufPairTest](#r0s106)|2 ✅|||5s|
|
||||
|[org.apache.pulsar.common.protocol.CommandUtilsTests](#r0s107)|7 ✅|||3s|
|
||||
|[org.apache.pulsar.common.protocol.MarkersTest](#r0s108)|6 ✅|||3s|
|
||||
|[org.apache.pulsar.common.protocol.PulsarDecoderTest](#r0s109)|1 ✅|||4s|
|
||||
|[org.apache.pulsar.common.stats.JvmDefaultGCMetricsLoggerTest](#r0s110)|1 ✅|||82ms|
|
||||
|[org.apache.pulsar.common.util.collections.BitSetRecyclableRecyclableTest](#r0s111)|2 ✅|||13ms|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentBitSetRecyclableTest](#r0s112)|2 ✅|||63ms|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest](#r0s113)|13 ✅|||28s|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest](#r0s114)|15 ✅|||2s|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest](#r0s115)|12 ✅|||9s|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest](#r0s116)|11 ✅|||7s|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest](#r0s117)|13 ✅|||1s|
|
||||
|[org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest](#r0s118)|9 ✅|||342ms|
|
||||
|[org.apache.pulsar.common.util.collections.FieldParserTest](#r0s119)|2 ✅|||64ms|
|
||||
|[org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest](#r0s120)|6 ✅|||350ms|
|
||||
|[org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest](#r0s121)|15 ✅|||3s|
|
||||
|[org.apache.pulsar.common.util.collections.TripleLongPriorityQueueTest](#r0s122)|3 ✅|||238ms|
|
||||
|[org.apache.pulsar.common.util.FieldParserTest](#r0s123)|1 ✅|||242ms|
|
||||
|[org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest](#r0s124)|6 ✅|||6s|
|
||||
|[org.apache.pulsar.common.util.netty.ChannelFuturesTest](#r0s125)|5 ✅|||2s|
|
||||
|[org.apache.pulsar.common.util.RateLimiterTest](#r0s126)|11 ✅|||7s|
|
||||
|[org.apache.pulsar.common.util.ReflectionsTest](#r0s127)|12 ✅|||172ms|
|
||||
|[org.apache.pulsar.common.util.RelativeTimeUtilTest](#r0s128)|1 ✅|||39ms|
|
||||
|[org.apache.pulsar.discovery.service.web.DiscoveryServiceWebTest](#r0s129)|1 ✅|||5s|
|
||||
|[org.apache.pulsar.functions.worker.PulsarFunctionE2ESecurityTest](#r0s130)|2 ✅|||28s|
|
||||
|[org.apache.pulsar.functions.worker.PulsarFunctionPublishTest](#r0s131)|3 ✅|||42s|
|
||||
|[org.apache.pulsar.functions.worker.PulsarFunctionTlsTest](#r0s132)|1 ✅|||12s|
|
||||
|[org.apache.pulsar.io.PulsarFunctionTlsTest](#r0s133)|1 ✅|||30s|
|
||||
|[org.apache.pulsar.proxy.server.AdminProxyHandlerTest](#r0s134)|1 ✅|||474ms|
|
||||
|[org.apache.pulsar.proxy.server.AuthedAdminProxyHandlerTest](#r0s135)|1 ✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.FunctionWorkerRoutingTest](#r0s136)|1 ✅|||10ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyAdditionalServletTest](#r0s137)|1 ✅|||125ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyAuthenticatedProducerConsumerTest](#r0s138)|1 ✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyAuthenticationTest](#r0s139)|1 ✅|||17s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyConnectionThrottlingTest](#r0s140)|1 ✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyEnableHAProxyProtocolTest](#r0s141)|1 ✅|||511ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyForwardAuthDataTest](#r0s142)|1 ✅|||32s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest](#r0s143)|10 ✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithAuth](#r0s144)|3 ✅|||7s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithoutAuth](#r0s145)|3 ✅|||7s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyLookupThrottlingTest](#r0s146)|1 ✅|||3s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyParserTest](#r0s147)|5 ✅|||1s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyRolesEnforcementTest](#r0s148)|1 ✅|||10s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyStatsTest](#r0s149)|3 ✅|||533ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyTest](#r0s150)|6 ✅|||3s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyTlsTest](#r0s151)|2 ✅|||414ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyTlsTestWithAuth](#r0s152)|1 ✅|||4ms|
|
||||
|[org.apache.pulsar.proxy.server.ProxyWithAuthorizationNegTest](#r0s153)|1 ✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest](#r0s154)|13 ✅|||33s|
|
||||
|[org.apache.pulsar.proxy.server.ProxyWithoutServiceDiscoveryTest](#r0s155)|1 ✅|||2s|
|
||||
|[org.apache.pulsar.proxy.server.SuperUserAuthedAdminProxyHandlerTest](#r0s156)|3 ✅|||8s|
|
||||
|[org.apache.pulsar.proxy.server.UnauthedAdminProxyHandlerTest](#r0s157)|2 ✅|||114ms|
|
||||
|[org.apache.pulsar.PulsarBrokerStarterTest](#r0s158)|9 ✅|||591ms|
|
||||
|[org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest](#r0s159)|23 ✅|||107s|
|
||||
|[org.apache.pulsar.schema.PartitionedTopicSchemaTest](#r0s160)|1 ✅|||29s|
|
||||
|[org.apache.pulsar.schema.SchemaTest](#r0s161)|3 ✅|||31s|
|
||||
|[org.apache.pulsar.stats.client.PulsarBrokerStatsClientTest](#r0s162)|2 ✅|||41s|
|
||||
|[org.apache.pulsar.tests.EnumValuesDataProviderTest](#r0s163)|6 ✅|||23ms|
|
||||
|[org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest](#r0s164)|1 ✅||4 ⚪|36ms|
|
||||
|[org.apache.pulsar.tests.TestRetrySupportRetryTest](#r0s165)|1 ✅||4 ⚪|27ms|
|
||||
|[org.apache.pulsar.tests.TestRetrySupportSuccessTest](#r0s166)|3 ✅|||1ms|
|
||||
|[org.apache.pulsar.tests.ThreadDumpUtilTest](#r0s167)|2 ✅|||17ms|
|
||||
|[org.apache.pulsar.utils.SimpleTextOutputStreamTest](#r0s168)|4 ✅|||50ms|
|
||||
|[org.apache.pulsar.utils.StatsOutputStreamTest](#r0s169)|6 ✅|||59ms|
|
||||
|[org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest](#r0s170)|4 ✅|||29s|
|
||||
|[org.apache.pulsar.websocket.proxy.ProxyAuthorizationTest](#r0s171)|1 ✅|||1s|
|
||||
|[org.apache.pulsar.websocket.proxy.ProxyConfigurationTest](#r0s172)|2 ✅|||9s|
|
||||
|[org.apache.pulsar.websocket.proxy.ProxyPublishConsumeTlsTest](#r0s173)|1 ✅|||11s|
|
||||
|[org.apache.pulsar.websocket.proxy.ProxyPublishConsumeWithoutZKTest](#r0s174)|1 ✅|||7s|
|
||||
|[org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest](#r0s175)|4 ✅|||30s|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">org.apache.pulsar.AddMissingPatchVersionTest</a>
|
||||
```
|
||||
⚪ testVersionStrings
|
||||
|
||||
19
__tests__/__outputs__/rspec-json.md
Normal file
19
__tests__/__outputs__/rspec-json.md
Normal file
@@ -0,0 +1,19 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/rspec-json.json|1 ✅|1 ❌|1 ⚪|0ms|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/rspec-json.json</a>
|
||||
**3** tests were completed in **0ms** with **1** passed, **1** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[./spec/config/check_env_vars_spec.rb](#r0s0)|1 ✅|1 ❌|1 ⚪|0ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">./spec/config/check_env_vars_spec.rb</a>
|
||||
```
|
||||
CheckEnvVars#call when all env vars are defined behaves like success load
|
||||
❌ CheckEnvVars#call when all env vars are defined behaves like success load fails in assertion
|
||||
(#ActiveSupport::BroadcastLogger:0x00007f1007fedf58).debug("All config env vars exist")
|
||||
expected: 0 times with arguments: ("All config env vars exist")
|
||||
received: 1 time with arguments: ("All config env vars exist")
|
||||
✅ CheckEnvVars#call when all env vars are defined behaves like success load logs success message
|
||||
⚪ CheckEnvVars#call when all env vars are defined behaves like success load skips the test
|
||||
```
|
||||
@@ -1,21 +1,26 @@
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/SilentNotes.trx|67 ✅||12 ⚪|1s|
|
||||
## ✅ <a id="user-content-r0" href="#r0">fixtures/external/SilentNotes.trx</a>
|
||||
**79** tests were completed in **1s** with **67** passed, **0** failed and **12** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageCredentialsTest](#r0s0)|6✅|||30ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest](#r0s1)|2✅||3⚪|101ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest](#r0s2)|4✅||3⚪|166ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest](#r0s3)|2✅|||7ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest](#r0s4)|1✅||3⚪|40ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest](#r0s5)|1✅||3⚪|15ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest](#r0s6)|5✅|||16ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageTokenTest](#r0s7)|9✅|||0ms|
|
||||
|[VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest](#r0s8)|3✅|||3ms|
|
||||
|[VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest](#r0s9)|9✅|||12ms|
|
||||
|[VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest](#r0s10)|5✅|||13ms|
|
||||
|[VanillaCloudStorageClientTest.SecureStringExtensionsTest](#r0s11)|7✅|||0ms|
|
||||
|[VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest](#r0s12)|13✅|||43ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageCredentialsTest](#r0s0)|6 ✅|||30ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest](#r0s1)|2 ✅||3 ⚪|101ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest](#r0s2)|4 ✅||3 ⚪|166ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest](#r0s3)|2 ✅|||7ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest](#r0s4)|1 ✅||3 ⚪|40ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest](#r0s5)|1 ✅||3 ⚪|15ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest](#r0s6)|5 ✅|||16ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageTokenTest](#r0s7)|9 ✅|||0ms|
|
||||
|[VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest](#r0s8)|3 ✅|||3ms|
|
||||
|[VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest](#r0s9)|9 ✅|||12ms|
|
||||
|[VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest](#r0s10)|5 ✅|||13ms|
|
||||
|[VanillaCloudStorageClientTest.SecureStringExtensionsTest](#r0s11)|7 ✅|||0ms|
|
||||
|[VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest](#r0s12)|13 ✅|||43ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#r0s0">VanillaCloudStorageClientTest.CloudStorageCredentialsTest</a>
|
||||
```
|
||||
✅ AreEqualWorksWithDifferentPassword
|
||||
@@ -133,4 +138,5 @@
|
||||
✅ SerializedXmlCanBeReadBack
|
||||
✅ SerializedXmlDoesNotContainNullProperties
|
||||
✅ SerializedXmlDoesNotContainPlaintextData
|
||||
```
|
||||
```
|
||||
</details>
|
||||
@@ -1,13 +1,17 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/swift-xunit.xml|2 ✅|1 ❌||220ms|
|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/swift-xunit.xml</a>
|
||||
**3** tests were completed in **220ms** with **2** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[TestResults](#r0s0)|2✅|1❌||220ms|
|
||||
|[TestResults](#r0s0)|2 ✅|1 ❌||220ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">TestResults</a>
|
||||
```
|
||||
AcmeLibTests.AcmeLibTests
|
||||
✅ test_always_pass
|
||||
✅ test_always_skip
|
||||
❌ test_always_fail
|
||||
failed
|
||||
```
|
||||
107
__tests__/__snapshots__/dotnet-nunit.test.ts.snap
Normal file
107
__tests__/__snapshots__/dotnet-nunit.test.ts.snap
Normal file
@@ -0,0 +1,107 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`dotnet-nunit tests report from ./reports/dotnet test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/dotnet-nunit.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "CalculatorTests",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Is_Even_Number(2)",
|
||||
"result": "success",
|
||||
"time": 0.622,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": " at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i) in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.NUnitV3Tests\\CalculatorTests.cs:line 61
|
||||
",
|
||||
"line": undefined,
|
||||
"message": " Expected: True
|
||||
But was: False
|
||||
",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Is_Even_Number(3)",
|
||||
"result": "failed",
|
||||
"time": 1.098,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": " at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b) in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.Unit\\Calculator.cs:line 9
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest() in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.NUnitV3Tests\\CalculatorTests.cs:line 33",
|
||||
"line": undefined,
|
||||
"message": "System.DivideByZeroException : Attempted to divide by zero.",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Exception_In_TargetTest",
|
||||
"result": "failed",
|
||||
"time": 22.805,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": " at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test() in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.NUnitV3Tests\\CalculatorTests.cs:line 39",
|
||||
"line": undefined,
|
||||
"message": "System.Exception : Test",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Exception_In_Test",
|
||||
"result": "failed",
|
||||
"time": 0.528,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": " at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.NUnitV3Tests\\CalculatorTests.cs:line 27
|
||||
",
|
||||
"line": undefined,
|
||||
"message": " Expected: 3
|
||||
But was: 2
|
||||
",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Failing_Test",
|
||||
"result": "failed",
|
||||
"time": 28.162,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Passing_Test",
|
||||
"result": "success",
|
||||
"time": 0.23800000000000002,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Passing_Test_With_Description",
|
||||
"result": "success",
|
||||
"time": 0.135,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Skipped_Test",
|
||||
"result": "skipped",
|
||||
"time": 0.398,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "",
|
||||
"line": undefined,
|
||||
"message": "",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Timeout_Test",
|
||||
"result": "failed",
|
||||
"time": 14.949,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "DotnetTests.NUnitV3Tests.dll.DotnetTests.XUnitTests",
|
||||
"totalTime": undefined,
|
||||
},
|
||||
],
|
||||
"totalTime": 230.30800000000002,
|
||||
}
|
||||
`;
|
||||
@@ -41,7 +41,7 @@ at java.lang.Thread.run(Thread.java:748)
|
||||
|
||||
",
|
||||
"line": 29,
|
||||
"message": undefined,
|
||||
"message": "java.lang.AssertionError: expected [1.2.1] but found [1.2.0]",
|
||||
"path": "pulsar-common/src/test/java/org/apache/pulsar/AddMissingPatchVersionTest.java",
|
||||
},
|
||||
"name": "testVersionStrings",
|
||||
@@ -100,7 +100,7 @@ at java.lang.Thread.run(Thread.java:748)
|
||||
|
||||
",
|
||||
"line": 29,
|
||||
"message": undefined,
|
||||
"message": "java.lang.AssertionError: expected [1.2.1] but found [1.2.0]",
|
||||
"path": "pulsar-common/src/test/java/org/apache/pulsar/AddMissingPatchVersionTest.java",
|
||||
},
|
||||
"name": "testVersionStrings",
|
||||
|
||||
@@ -1,5 +1,63 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`jest-junit tests parsing ESLint report without timing information works - PR #134 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/jest-junit-eslint.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "test",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test.jsx",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "test.jsx",
|
||||
"totalTime": 0,
|
||||
},
|
||||
],
|
||||
"totalTime": undefined,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`jest-junit tests parsing junit report with message succeeds 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/junit-with-message.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "Fails",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "error.cpp:01
|
||||
Expected: true
|
||||
Which is: false >",
|
||||
"line": undefined,
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Test",
|
||||
"result": "failed",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "Test",
|
||||
"totalTime": 1,
|
||||
},
|
||||
],
|
||||
"totalTime": 1,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`jest-junit tests report from #235 testing react components named <ComponentName /> 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/external/jest/jest-react-component-test-results.xml",
|
||||
|
||||
49
__tests__/__snapshots__/rspec-json.test.ts.snap
Normal file
49
__tests__/__snapshots__/rspec-json.test.ts.snap
Normal file
@@ -0,0 +1,49 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`rspec-json tests report from ./reports/rspec-json test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/rspec-json.json",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "/usr/local/bundle/ruby/3.3.0/gems/net-http-0.4.1/lib/net/http.rb:1603:in \`initialize'
|
||||
./config/check_env_vars.rb:11:in \`call'
|
||||
./spec/config/check_env_vars_spec.rb:7:in \`block (3 levels) in <top (required)>'
|
||||
./spec/config/check_env_vars_spec.rb:19:in \`block (4 levels) in <top (required)>'",
|
||||
"line": 11,
|
||||
"message": "(#ActiveSupport::BroadcastLogger:0x00007f1007fedf58).debug("All config env vars exist")
|
||||
expected: 0 times with arguments: ("All config env vars exist")
|
||||
received: 1 time with arguments: ("All config env vars exist")",
|
||||
"path": "./config/check_env_vars.rb",
|
||||
},
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load fails in assertion",
|
||||
"result": "failed",
|
||||
"time": 0.004411051,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load logs success message",
|
||||
"result": "success",
|
||||
"time": 0.079159625,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load skips the test",
|
||||
"result": "skipped",
|
||||
"time": 0.000023007,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "./spec/config/check_env_vars_spec.rb",
|
||||
"totalTime": undefined,
|
||||
},
|
||||
],
|
||||
"totalTime": 0.19118387,
|
||||
}
|
||||
`;
|
||||
@@ -25,7 +25,7 @@ TestRunResult {
|
||||
"error": {
|
||||
"details": undefined,
|
||||
"line": undefined,
|
||||
"message": undefined,
|
||||
"message": "failed",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "test_always_fail",
|
||||
|
||||
29
__tests__/dotnet-nunit.test.ts
Normal file
29
__tests__/dotnet-nunit.test.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
import {DotnetNunitParser} from '../src/parsers/dotnet-nunit/dotnet-nunit-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('dotnet-nunit tests', () => {
|
||||
it('report from ./reports/dotnet test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-nunit.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'dotnet-nunit.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['DotnetTests.Unit/Calculator.cs', 'DotnetTests.NUnitV3Tests/CalculatorTests.cs']
|
||||
}
|
||||
|
||||
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)
|
||||
})
|
||||
})
|
||||
112
__tests__/fixtures/dotnet-nunit.xml
Normal file
112
__tests__/fixtures/dotnet-nunit.xml
Normal file
@@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<test-run id="0" runstate="Runnable" testcasecount="9" result="Failed" total="9" passed="3" failed="5" inconclusive="0" skipped="1" asserts="5" engine-version="3.12.0.0" clr-version="3.1.16" start-time="2021-06-28 20:23:41Z" end-time="2021-06-28 20:23:41Z" duration="0.230308">
|
||||
<command-line><![CDATA[C:\Users\Michal\.dotnet\tools\.store\nunit.consolerunner.netcore\3.12.0-beta2\nunit.consolerunner.netcore\3.12.0-beta2\tools\netcoreapp3.1\any\nunit3-console.dll reports/dotnet/DotnetTests.NUnitV3Tests/bin/Debug/netcoreapp3.1/DotnetTests.NUnitV3Tests.dll --result=__tests__/fixtures/dotnet-nunit.xml]]></command-line>
|
||||
<test-suite type="Assembly" id="1-1011" name="DotnetTests.NUnitV3Tests.dll" fullname="C:/Users/Michal/Workspace/dorny/test-reporter/reports/dotnet/DotnetTests.NUnitV3Tests/bin/Debug/netcoreapp3.1/DotnetTests.NUnitV3Tests.dll" runstate="Runnable" testcasecount="9" result="Failed" site="Child" start-time="2021-06-28T20:23:41.4594179Z" end-time="2021-06-28T20:23:41.5420313Z" duration="0.082553" total="9" passed="3" failed="5" warnings="0" inconclusive="0" skipped="1" asserts="5">
|
||||
<environment framework-version="3.13.2.0" clr-version="3.1.16" os-version="Microsoft Windows 10.0.19041" platform="Win32NT" cwd="C:\Users\Michal\Workspace\dorny\test-reporter" machine-name="DORNY-PC" user="Michal" user-domain="DORNY-PC" culture="sk-SK" uiculture="en-US" os-architecture="x64" />
|
||||
<settings>
|
||||
<setting name="DisposeRunners" value="True" />
|
||||
<setting name="WorkDirectory" value="C:\Users\Michal\Workspace\dorny\test-reporter" />
|
||||
<setting name="NumberOfTestWorkers" value="4" />
|
||||
</settings>
|
||||
<properties>
|
||||
<property name="_PID" value="30996" />
|
||||
<property name="_APPDOMAIN" value="nunit3-console" />
|
||||
</properties>
|
||||
<failure>
|
||||
<message><![CDATA[One or more child tests had errors]]></message>
|
||||
</failure>
|
||||
<test-suite type="TestSuite" id="1-1012" name="DotnetTests" fullname="DotnetTests" runstate="Runnable" testcasecount="9" result="Failed" site="Child" start-time="2021-06-28T20:23:41.4647482Z" end-time="2021-06-28T20:23:41.5420271Z" duration="0.077277" total="9" passed="3" failed="5" warnings="0" inconclusive="0" skipped="1" asserts="5">
|
||||
<failure>
|
||||
<message><![CDATA[One or more child tests had errors]]></message>
|
||||
</failure>
|
||||
<test-suite type="TestSuite" id="1-1013" name="XUnitTests" fullname="DotnetTests.XUnitTests" runstate="Runnable" testcasecount="9" result="Failed" site="Child" start-time="2021-06-28T20:23:41.4649710Z" end-time="2021-06-28T20:23:41.5420231Z" duration="0.077053" total="9" passed="3" failed="5" warnings="0" inconclusive="0" skipped="1" asserts="5">
|
||||
<failure>
|
||||
<message><![CDATA[One or more child tests had errors]]></message>
|
||||
</failure>
|
||||
<test-suite type="TestFixture" id="1-1000" name="CalculatorTests" fullname="DotnetTests.XUnitTests.CalculatorTests" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" testcasecount="9" result="Failed" site="Child" start-time="2021-06-28T20:23:41.4661195Z" end-time="2021-06-28T20:23:41.5420143Z" duration="0.075896" total="9" passed="3" failed="5" warnings="0" inconclusive="0" skipped="1" asserts="5">
|
||||
<failure>
|
||||
<message><![CDATA[One or more child tests had errors]]></message>
|
||||
</failure>
|
||||
<test-case id="1-1004" name="Exception_In_TargetTest" fullname="DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest" methodname="Exception_In_TargetTest" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="2033520428" result="Failed" label="Error" start-time="2021-06-28T20:23:41.4684284Z" end-time="2021-06-28T20:23:41.4911288Z" duration="0.022805" asserts="0">
|
||||
<failure>
|
||||
<message><![CDATA[System.DivideByZeroException : Attempted to divide by zero.]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.Unit\Calculator.cs:line 9
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 33]]></stack-trace>
|
||||
</failure>
|
||||
</test-case>
|
||||
<test-case id="1-1005" name="Exception_In_Test" fullname="DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test" methodname="Exception_In_Test" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="145176317" result="Failed" label="Error" start-time="2021-06-28T20:23:41.4930398Z" end-time="2021-06-28T20:23:41.4935666Z" duration="0.000528" asserts="0">
|
||||
<failure>
|
||||
<message><![CDATA[System.Exception : Test]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 39]]></stack-trace>
|
||||
</failure>
|
||||
</test-case>
|
||||
<test-case id="1-1003" name="Failing_Test" fullname="DotnetTests.XUnitTests.CalculatorTests.Failing_Test" methodname="Failing_Test" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="189717168" result="Failed" start-time="2021-06-28T20:23:41.4935910Z" end-time="2021-06-28T20:23:41.5217516Z" duration="0.028162" asserts="1">
|
||||
<failure>
|
||||
<message><![CDATA[ Expected: 3
|
||||
But was: 2
|
||||
]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 27
|
||||
]]></stack-trace>
|
||||
</failure>
|
||||
<assertions>
|
||||
<assertion result="Failed">
|
||||
<message><![CDATA[ Expected: 3
|
||||
But was: 2
|
||||
]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 27
|
||||
]]></stack-trace>
|
||||
</assertion>
|
||||
</assertions>
|
||||
</test-case>
|
||||
<test-suite type="Theory" id="1-1010" name="Is_Even_Number" fullname="DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" testcasecount="2" result="Failed" site="Child" start-time="2021-06-28T20:23:41.5217837Z" end-time="2021-06-28T20:23:41.5251025Z" duration="0.003318" total="2" passed="1" failed="1" warnings="0" inconclusive="0" skipped="0" asserts="2">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="Combinatorial" />
|
||||
</properties>
|
||||
<failure>
|
||||
<message><![CDATA[One or more child tests had errors]]></message>
|
||||
</failure>
|
||||
<test-case id="1-1008" name="Is_Even_Number(2)" fullname="DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(2)" methodname="Is_Even_Number" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="2002556739" result="Passed" start-time="2021-06-28T20:23:41.5222381Z" end-time="2021-06-28T20:23:41.5228607Z" duration="0.000622" asserts="1" />
|
||||
<test-case id="1-1009" name="Is_Even_Number(3)" fullname="DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(3)" methodname="Is_Even_Number" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="1722214143" result="Failed" start-time="2021-06-28T20:23:41.5228803Z" end-time="2021-06-28T20:23:41.5239781Z" duration="0.001098" asserts="1">
|
||||
<failure>
|
||||
<message><![CDATA[ Expected: True
|
||||
But was: False
|
||||
]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 61
|
||||
]]></stack-trace>
|
||||
</failure>
|
||||
<assertions>
|
||||
<assertion result="Failed">
|
||||
<message><![CDATA[ Expected: True
|
||||
But was: False
|
||||
]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 61
|
||||
]]></stack-trace>
|
||||
</assertion>
|
||||
</assertions>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-case id="1-1001" name="Passing_Test" fullname="DotnetTests.XUnitTests.CalculatorTests.Passing_Test" methodname="Passing_Test" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="550330290" result="Passed" start-time="2021-06-28T20:23:41.5260365Z" end-time="2021-06-28T20:23:41.5262756Z" duration="0.000238" asserts="1" />
|
||||
<test-case id="1-1002" name="Passing_Test_With_Description" fullname="DotnetTests.XUnitTests.CalculatorTests.Passing_Test_With_Description" methodname="Passing_Test_With_Description" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="1693317298" result="Passed" start-time="2021-06-28T20:23:41.5263998Z" end-time="2021-06-28T20:23:41.5265354Z" duration="0.000135" asserts="1">
|
||||
<properties>
|
||||
<property name="Description" value="Some description" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1-1007" name="Skipped_Test" fullname="DotnetTests.XUnitTests.CalculatorTests.Skipped_Test" methodname="Skipped_Test" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Ignored" seed="1512653931" result="Skipped" label="Ignored" start-time="2021-06-28T20:23:41.5265550Z" end-time="2021-06-28T20:23:41.5269525Z" duration="0.000398" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Skipped" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Skipped]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1-1006" name="Timeout_Test" fullname="DotnetTests.XUnitTests.CalculatorTests.Timeout_Test" methodname="Timeout_Test" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="258810529" result="Failed" label="Test exceeded Timeout value 1ms." start-time="2021-06-28T20:23:41.5269651Z" end-time="2021-06-28T20:23:41.5419118Z" duration="0.014949" asserts="0">
|
||||
<properties>
|
||||
<property name="Timeout" value="1" />
|
||||
</properties>
|
||||
<failure />
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-run>
|
||||
@@ -1,9 +1,15 @@
|
||||
{"protocolVersion":"0.1.1","runnerVersion":"1.15.4","pid":21320,"type":"start","time":0}
|
||||
{"suite":{"id":0,"platform":"vm","path":"test\\main_test.dart"},"type":"suite","time":0}
|
||||
{"test":{"id":1,"name":"loading test\\main_test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":1}
|
||||
{"suite":{"id":2,"platform":"vm","path":"test\\second_test.dart"},"type":"suite","time":11}
|
||||
{"test":{"id":3,"name":"loading test\\second_test.dart","suiteID":2,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":11}
|
||||
{"count":2,"type":"allSuites","time":11}
|
||||
{"testID":1,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":4018}
|
||||
{"testID":3,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":4025}
|
||||
{"success":true,"type":"done","time":4029}
|
||||
{"protocolVersion":"0.1.1","runnerVersion":"1.25.3","pid":7103,"type":"start","time":0}
|
||||
{"suite":{"id":0,"platform":"vm","path":"test/second_test.dart"},"type":"suite","time":0}
|
||||
{"test":{"id":1,"name":"loading test/second_test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":0}
|
||||
{"suite":{"id":2,"platform":"vm","path":"test/main_test.dart"},"type":"suite","time":4}
|
||||
{"test":{"id":3,"name":"loading test/main_test.dart","suiteID":2,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":4}
|
||||
{"count":2,"time":5,"type":"allSuites"}
|
||||
{"testID":1,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":294}
|
||||
{"testID":3,"messageType":"print","message":"Hello from the test","type":"print","time":297}
|
||||
{"testID":3,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":321}
|
||||
{"group":{"id":4,"suiteID":2,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":0,"line":null,"column":null,"url":null},"type":"group","time":322}
|
||||
{"test":{"id":5,"name":"(setUpAll)","suiteID":2,"groupIDs":[4],"metadata":{"skip":false,"skipReason":null},"line":6,"column":3,"url":"file:///Users/domu/Downloads/test-reporter/reports/dart/test/main_test.dart"},"type":"testStart","time":322}
|
||||
{"testID":5,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":330}
|
||||
{"test":{"id":6,"name":"(tearDownAll)","suiteID":2,"groupIDs":[4],"metadata":{"skip":false,"skipReason":null},"line":7,"column":3,"url":"file:///Users/domu/Downloads/test-reporter/reports/dart/test/main_test.dart"},"type":"testStart","time":330}
|
||||
{"testID":6,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":331}
|
||||
{"success":true,"type":"done","time":333}
|
||||
|
||||
17
__tests__/fixtures/empty/rspec-json.json
Normal file
17
__tests__/fixtures/empty/rspec-json.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"version": "3.13.0",
|
||||
"messages": [
|
||||
"No examples found."
|
||||
],
|
||||
"examples": [
|
||||
|
||||
],
|
||||
"summary": {
|
||||
"duration": 0.002514266,
|
||||
"example_count": 0,
|
||||
"failure_count": 0,
|
||||
"pending_count": 0,
|
||||
"errors_outside_of_examples_count": 0
|
||||
},
|
||||
"summary_line": "0 examples, 0 failures"
|
||||
}
|
||||
125
__tests__/fixtures/external/nunit-sample.xml
vendored
Normal file
125
__tests__/fixtures/external/nunit-sample.xml
vendored
Normal 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>
|
||||
6
__tests__/fixtures/jest-junit-eslint.xml
Normal file
6
__tests__/fixtures/jest-junit-eslint.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<testsuites>
|
||||
<testsuite package="org.eslint" time="0" tests="1" errors="0" name="test.jsx">
|
||||
<testcase time="0" name="test.jsx" classname="test" />
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
10
__tests__/fixtures/junit-with-message.xml
Normal file
10
__tests__/fixtures/junit-with-message.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites tests="1" failures="1" disabled="0" errors="0" time="0.001" name="Failure">
|
||||
<testsuite name="Test" tests="6" failures="1" disabled="0" errors="0" time="0.001">
|
||||
<testcase name="Test" status="run" time="0" classname="Fails">
|
||||
<failure message="error" type=""><![CDATA[error.cpp:01
|
||||
Expected: true
|
||||
Which is: false >]]></failure>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
53
__tests__/fixtures/rspec-json.json
Normal file
53
__tests__/fixtures/rspec-json.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"version": "3.13.0",
|
||||
"examples": [
|
||||
{
|
||||
"id": "./spec/config/check_env_vars_spec.rb[1:1:1:1:1]",
|
||||
"description": "logs success message",
|
||||
"full_description": "CheckEnvVars#call when all env vars are defined behaves like success load logs success message",
|
||||
"status": "passed",
|
||||
"file_path": "./spec/config/check_env_vars_spec.rb",
|
||||
"line_number": 12,
|
||||
"run_time": 0.079159625,
|
||||
"pending_message": null
|
||||
},
|
||||
{
|
||||
"id": "./spec/config/check_env_vars_spec.rb[1:1:1:1:2]",
|
||||
"description": "fails in assertion",
|
||||
"full_description": "CheckEnvVars#call when all env vars are defined behaves like success load fails in assertion",
|
||||
"status": "failed",
|
||||
"file_path": "./spec/config/check_env_vars_spec.rb",
|
||||
"line_number": 17,
|
||||
"run_time": 0.004411051,
|
||||
"pending_message": null,
|
||||
"exception": {
|
||||
"class": "RSpec::Mocks::MockExpectationError",
|
||||
"message": "(#ActiveSupport::BroadcastLogger:0x00007f1007fedf58).debug(\"All config env vars exist\")\n expected: 0 times with arguments: (\"All config env vars exist\")\n received: 1 time with arguments: (\"All config env vars exist\")",
|
||||
"backtrace": [
|
||||
"/usr/local/bundle/ruby/3.3.0/gems/net-http-0.4.1/lib/net/http.rb:1603:in `initialize'",
|
||||
"./config/check_env_vars.rb:11:in `call'",
|
||||
"./spec/config/check_env_vars_spec.rb:7:in `block (3 levels) in \u003ctop (required)\u003e'",
|
||||
"./spec/config/check_env_vars_spec.rb:19:in `block (4 levels) in \u003ctop (required)\u003e'"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "./spec/config/check_env_vars_spec.rb[1:1:1:1:4]",
|
||||
"description": "skips the test",
|
||||
"full_description": "CheckEnvVars#call when all env vars are defined behaves like success load skips the test",
|
||||
"status": "pending",
|
||||
"file_path": "./spec/config/check_env_vars_spec.rb",
|
||||
"line_number": 27,
|
||||
"run_time": 2.3007e-05,
|
||||
"pending_message": "Temporarily skipped with xit"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"duration": 0.19118387,
|
||||
"example_count": 3,
|
||||
"failure_count": 1,
|
||||
"pending_count": 1,
|
||||
"errors_outside_of_examples_count": 0
|
||||
},
|
||||
"summary_line": "3 examples, 1 failures, 1 pending"
|
||||
}
|
||||
@@ -105,4 +105,44 @@ describe('jest-junit tests', () => {
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('parsing ESLint report without timing information works - PR #134', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit-eslint.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'jest-junit-eslint.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['test.js']
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(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)
|
||||
})
|
||||
|
||||
it('parsing junit report with message succeeds', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'junit-with-message.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'junit-with-message.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['test.js']
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(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)
|
||||
})
|
||||
})
|
||||
|
||||
45
__tests__/rspec-json.test.ts
Normal file
45
__tests__/rspec-json.test.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
import {RspecJsonParser} from '../src/parsers/rspec-json/rspec-json-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('rspec-json tests', () => {
|
||||
it('produces empty test run result when there are no test cases', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'rspec-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new RspecJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result.tests).toBe(0)
|
||||
expect(result.result).toBe('success')
|
||||
})
|
||||
|
||||
it('report from ./reports/rspec-json test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'rspec-json.json')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'rspec-json.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['test/main.test.js', 'test/second.test.js', 'lib/main.js']
|
||||
}
|
||||
|
||||
const parser = new RspecJsonParser(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)
|
||||
})
|
||||
})
|
||||
13
action.yml
13
action.yml
@@ -26,11 +26,13 @@ inputs:
|
||||
description: |
|
||||
Format of test results. Supported options:
|
||||
- dart-json
|
||||
- dotnet-nunit
|
||||
- dotnet-trx
|
||||
- flutter-json
|
||||
- java-junit
|
||||
- jest-junit
|
||||
- mocha-json
|
||||
- rspec-json
|
||||
- swift-xunit
|
||||
required: true
|
||||
list-suites:
|
||||
@@ -38,6 +40,7 @@ inputs:
|
||||
Limits which test suites are listed. Supported options:
|
||||
- all
|
||||
- only-failed
|
||||
- none
|
||||
required: false
|
||||
default: 'all'
|
||||
list-tests:
|
||||
@@ -72,6 +75,16 @@ inputs:
|
||||
Detailed listing of test suites and test cases will be skipped.
|
||||
default: 'false'
|
||||
required: false
|
||||
use-actions-summary:
|
||||
description: |
|
||||
Allows you to generate reports for Actions Summary
|
||||
https://github.com/orgs/github/teams/engineering/discussions/871
|
||||
default: 'true'
|
||||
required: false
|
||||
badge-title:
|
||||
description: Customize badge title
|
||||
required: false
|
||||
default: 'tests'
|
||||
token:
|
||||
description: GitHub Access Token
|
||||
required: false
|
||||
|
||||
6650
dist/index.js
generated
vendored
6650
dist/index.js
generated
vendored
File diff suppressed because one or more lines are too long
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
25
dist/licenses.txt
generated
vendored
25
dist/licenses.txt
generated
vendored
@@ -378,16 +378,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
@vercel/ncc
|
||||
MIT
|
||||
Copyright 2018 ZEIT, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
adm-zip
|
||||
MIT
|
||||
MIT License
|
||||
@@ -622,7 +612,7 @@ braces
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2018, Jon Schlinkert.
|
||||
Copyright (c) 2014-present, Jon Schlinkert.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -1490,19 +1480,6 @@ Permission to use, copy, modify, and/or distribute this software for any purpose
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
uuid
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2010-2020 Robert Kieffer and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
wrappy
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
2660
package-lock.json
generated
2660
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
59
package.json
59
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "test-check",
|
||||
"version": "1.8.0",
|
||||
"name": "test-reporter",
|
||||
"version": "2.0.0",
|
||||
"private": true,
|
||||
"description": "Presents test results from popular testing frameworks as Github check run",
|
||||
"main": "lib/main.js",
|
||||
@@ -16,12 +16,13 @@
|
||||
"all": "npm run build && npm run format && npm run lint && npm run package && npm test",
|
||||
"dart-fixture": "cd \"reports/dart\" && dart test --file-reporter=\"json:../../__tests__/fixtures/dart-json.json\"",
|
||||
"dotnet-fixture": "dotnet test reports/dotnet/DotnetTests.XUnitTests --logger \"trx;LogFileName=../../../../__tests__/fixtures/dotnet-trx.trx\"",
|
||||
"dotnet-nunit-fixture": "nunit.exe reports/dotnet/DotnetTests.NUnitV3Tests/bin/Debug/netcoreapp3.1/DotnetTests.NUnitV3Tests.dll --result=__tests__/fixtures/dotnet-nunit.xml",
|
||||
"jest-fixture": "cd \"reports/jest\" && npm test",
|
||||
"mocha-fixture": "cd \"reports/mocha\" && npm test"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/dorny/test-check.git"
|
||||
"url": "git+https://github.com/dorny/test-reporter.git"
|
||||
},
|
||||
"keywords": [
|
||||
"actions",
|
||||
@@ -32,42 +33,39 @@
|
||||
"author": "Michal Dorner <dorner.michal@gmail.com>",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.10.1",
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/github": "^6.0.0",
|
||||
"adm-zip": "^0.5.10",
|
||||
"fast-glob": "^3.3.2",
|
||||
"got": "^11.8.2",
|
||||
"picomatch": "^3.0.1",
|
||||
"adm-zip": "^0.5.16",
|
||||
"fast-glob": "^3.3.3",
|
||||
"got": "^11.8.6",
|
||||
"picomatch": "^4.0.2",
|
||||
"xml2js": "^0.6.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@octokit/types": "^12.4.0",
|
||||
"@octokit/webhooks": "^12.0.11",
|
||||
"@octokit/webhooks-types": "^7.3.1",
|
||||
"@types/adm-zip": "^0.5.5",
|
||||
"@types/github-slugger": "^1.3.0",
|
||||
"@types/jest": "^29.5.11",
|
||||
"@types/node": "^20.11.9",
|
||||
"@types/picomatch": "^2.3.3",
|
||||
"@octokit/webhooks-types": "^7.6.1",
|
||||
"@types/adm-zip": "^0.5.7",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/node": "^20.17.24",
|
||||
"@types/picomatch": "^2.3.4",
|
||||
"@types/xml2js": "^0.4.14",
|
||||
"@typescript-eslint/eslint-plugin": "^6.19.1",
|
||||
"@typescript-eslint/parser": "^6.19.1",
|
||||
"@vercel/ncc": "^0.38.1",
|
||||
"eol-converter-cli": "^1.0.8",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-import-resolver-typescript": "^3.6.1",
|
||||
"eslint-plugin-github": "^4.10.1",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-jest": "^27.6.3",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
||||
"@typescript-eslint/parser": "^7.18.0",
|
||||
"@vercel/ncc": "^0.38.3",
|
||||
"eol-converter-cli": "^1.1.0",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-import-resolver-typescript": "^3.8.5",
|
||||
"eslint-plugin-github": "^4.10.2",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-jest": "^28.11.0",
|
||||
"eslint-plugin-prettier": "^5.2.3",
|
||||
"jest": "^29.7.0",
|
||||
"jest-circus": "^29.7.0",
|
||||
"jest-junit": "^16.0.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"prettier": "^3.2.4",
|
||||
"ts-jest": "^29.1.2",
|
||||
"typescript": "^5.3.3"
|
||||
"prettier": "^3.5.3",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "^5.5.4"
|
||||
},
|
||||
"jest-junit": {
|
||||
"suiteName": "jest tests",
|
||||
@@ -78,5 +76,8 @@
|
||||
"suiteNameTemplate": "{filepath}",
|
||||
"classNameTemplate": "{classname}",
|
||||
"titleTemplate": "{title}"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,344 +5,377 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: _fe_analyzer_shared
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "11.0.0"
|
||||
version: "67.0.0"
|
||||
analyzer:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: analyzer
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.40.4"
|
||||
version: "6.4.1"
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.6.0"
|
||||
version: "2.5.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.2"
|
||||
version: "2.11.0"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
charcode:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: charcode
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.3"
|
||||
cli_util:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cli_util
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
version: "2.1.1"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.14.13"
|
||||
version: "1.18.0"
|
||||
convert:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: convert
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
version: "3.1.1"
|
||||
coverage:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: coverage
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.14.1"
|
||||
version: "1.7.2"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: crypto
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.5"
|
||||
version: "3.0.3"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: file
|
||||
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.0"
|
||||
frontend_server_client:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: frontend_server_client
|
||||
sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.0"
|
||||
glob:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: glob
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
http:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.12.2"
|
||||
version: "2.1.2"
|
||||
http_multi_server:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http_multi_server
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.0"
|
||||
version: "3.2.1"
|
||||
http_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http_parser
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.4"
|
||||
version: "4.0.2"
|
||||
io:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: io
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.4"
|
||||
version: "1.0.4"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: js
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.2"
|
||||
version: "0.7.1"
|
||||
logging:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: logging
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.11.4"
|
||||
version: "1.2.0"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.9"
|
||||
version: "0.12.16+1"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "25dfcaf170a0190f47ca6355bdd4552cb8924b430512ff0cafb8db9bd41fe33b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.3"
|
||||
version: "1.14.0"
|
||||
mime:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: mime
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.9.7"
|
||||
node_interop:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: node_interop
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
node_io:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: node_io
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
version: "1.0.5"
|
||||
node_preamble:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: node_preamble
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.12"
|
||||
version: "2.0.2"
|
||||
package_config:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: package_config
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.3"
|
||||
version: "2.1.0"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.7.0"
|
||||
version: "1.9.0"
|
||||
pedantic:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: pedantic
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.2"
|
||||
version: "1.11.1"
|
||||
pool:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pool
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.0"
|
||||
version: "1.5.1"
|
||||
pub_semver:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pub_semver
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.4"
|
||||
version: "2.1.4"
|
||||
shelf:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shelf
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.9"
|
||||
version: "1.4.1"
|
||||
shelf_packages_handler:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shelf_packages_handler
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "3.0.2"
|
||||
shelf_static:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shelf_static
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.8"
|
||||
version: "1.1.2"
|
||||
shelf_web_socket:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shelf_web_socket
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.3"
|
||||
version: "1.0.4"
|
||||
source_map_stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_map_stack_trace
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.1"
|
||||
source_maps:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_maps
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.10.9"
|
||||
version: "0.10.12"
|
||||
source_span:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.7.0"
|
||||
version: "1.10.0"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.5"
|
||||
version: "1.11.1"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.2"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.5"
|
||||
version: "1.2.0"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "1.2.1"
|
||||
test:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: test
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: d87214d19fb311997d8128ec501a980f77cb240ac4e7e219accf452813ff473c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.15.4"
|
||||
version: "1.25.3"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "2419f20b0c8677b2d67c8ac4d1ac7372d862dc6c460cdbb052b40155408cd794"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.18"
|
||||
version: "0.7.1"
|
||||
test_core:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_core
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "2236f70be1e5ab405c675e88c36935a87dad9e05a506b57dd5c0f617f5aebcb2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.11+1"
|
||||
version: "0.6.1"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: typed_data
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "1.3.2"
|
||||
vm_service:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: a75f83f14ad81d5fe4b3319710b90dec37da0e22612326b696c9e1b8f34bbf48
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.2.0"
|
||||
version: "14.2.0"
|
||||
watcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: watcher
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.9.7+15"
|
||||
version: "1.1.0"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.1"
|
||||
web_socket_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web_socket_channel
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "2.4.5"
|
||||
webkit_inspection_protocol:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webkit_inspection_protocol
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.3"
|
||||
version: "1.2.1"
|
||||
yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: yaml
|
||||
url: "https://pub.dartlang.org"
|
||||
sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.1"
|
||||
version: "3.1.2"
|
||||
sdks:
|
||||
dart: ">=2.8.1 <3.0.0"
|
||||
dart: ">=3.3.0 <4.0.0"
|
||||
|
||||
@@ -2,7 +2,7 @@ name: darttest
|
||||
description: A simple command-line application.
|
||||
|
||||
environment:
|
||||
sdk: '>=2.8.1 <3.0.0'
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
|
||||
dev_dependencies:
|
||||
pedantic: ^1.9.0
|
||||
|
||||
64
reports/dotnet/DotnetTests.NUnitV3Tests/CalculatorTests.cs
Normal file
64
reports/dotnet/DotnetTests.NUnitV3Tests/CalculatorTests.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using DotnetTests.Unit;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace DotnetTests.XUnitTests
|
||||
{
|
||||
public class CalculatorTests
|
||||
{
|
||||
private readonly Calculator _calculator = new Calculator();
|
||||
|
||||
[Test]
|
||||
public void Passing_Test()
|
||||
{
|
||||
Assert.That(_calculator.Sum(1, 1), Is.EqualTo(2));
|
||||
}
|
||||
|
||||
[Test(Description = "Some description")]
|
||||
public void Passing_Test_With_Description()
|
||||
{
|
||||
Assert.That(2, Is.EqualTo(2));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Failing_Test()
|
||||
{
|
||||
Assert.That(_calculator.Sum(1, 1), Is.EqualTo(3));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Exception_In_TargetTest()
|
||||
{
|
||||
_calculator.Div(1, 0);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Exception_In_Test()
|
||||
{
|
||||
throw new Exception("Test");
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Timeout(1)]
|
||||
public void Timeout_Test()
|
||||
{
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Ignore("Skipped")]
|
||||
public void Skipped_Test()
|
||||
{
|
||||
throw new Exception("Test");
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[TestCase(2)]
|
||||
[TestCase(3)]
|
||||
public void Is_Even_Number(int i)
|
||||
{
|
||||
Assert.True(i % 2 == 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="NUnit" Version="3.13.2" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\DotnetTests.Unit\DotnetTests.Unit.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -9,6 +9,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{BCAC3B31
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotnetTests.XUnitTests", "DotnetTests.XUnitTests\DotnetTests.XUnitTests.csproj", "{F8607EDB-D25D-47AA-8132-38ACA242E845}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotnetTests.NUnitV3Tests", "DotnetTests.NUnitV3Tests\DotnetTests.NUnitV3Tests.csproj", "{81023ED7-56CB-47E9-86C5-9125A0873C55}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -23,12 +25,17 @@ Global
|
||||
{F8607EDB-D25D-47AA-8132-38ACA242E845}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F8607EDB-D25D-47AA-8132-38ACA242E845}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F8607EDB-D25D-47AA-8132-38ACA242E845}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{81023ED7-56CB-47E9-86C5-9125A0873C55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{81023ED7-56CB-47E9-86C5-9125A0873C55}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{81023ED7-56CB-47E9-86C5-9125A0873C55}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{81023ED7-56CB-47E9-86C5-9125A0873C55}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{F8607EDB-D25D-47AA-8132-38ACA242E845} = {BCAC3B31-ADB1-4221-9D5B-182EE868648C}
|
||||
{81023ED7-56CB-47E9-86C5-9125A0873C55} = {BCAC3B31-ADB1-4221-9D5B-182EE868648C}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {6ED5543C-74AA-4B21-8050-943550F3F66E}
|
||||
|
||||
102
src/main.ts
102
src/main.ts
@@ -11,10 +11,12 @@ import {getAnnotations} from './report/get-annotations'
|
||||
import {getReport} from './report/get-report'
|
||||
|
||||
import {DartJsonParser} from './parsers/dart-json/dart-json-parser'
|
||||
import {DotnetNunitParser} from './parsers/dotnet-nunit/dotnet-nunit-parser'
|
||||
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 {RspecJsonParser} from './parsers/rspec-json/rspec-json-parser'
|
||||
import {SwiftXunitParser} from './parsers/swift-xunit/swift-xunit-parser'
|
||||
|
||||
import {normalizeDirPath, normalizeFilePath} from './utils/path-utils'
|
||||
@@ -36,13 +38,15 @@ class TestReporter {
|
||||
readonly path = core.getInput('path', {required: true})
|
||||
readonly pathReplaceBackslashes = core.getInput('path-replace-backslashes', {required: false}) === 'true'
|
||||
readonly reporter = core.getInput('reporter', {required: true})
|
||||
readonly listSuites = core.getInput('list-suites', {required: true}) as 'all' | 'failed'
|
||||
readonly listSuites = core.getInput('list-suites', {required: true}) as 'all' | 'failed' | 'none'
|
||||
readonly listTests = core.getInput('list-tests', {required: true}) as 'all' | 'failed' | 'none'
|
||||
readonly maxAnnotations = parseInt(core.getInput('max-annotations', {required: true}))
|
||||
readonly failOnError = core.getInput('fail-on-error', {required: true}) === 'true'
|
||||
readonly failOnEmpty = core.getInput('fail-on-empty', {required: true}) === 'true'
|
||||
readonly workDirInput = core.getInput('working-directory', {required: false})
|
||||
readonly onlySummary = core.getInput('only-summary', {required: false}) === 'true'
|
||||
readonly useActionsSummary = core.getInput('use-actions-summary', {required: false}) === 'true'
|
||||
readonly badgeTitle = core.getInput('badge-title', {required: false})
|
||||
readonly token = core.getInput('token', {required: true})
|
||||
readonly octokit: InstanceType<typeof GitHub>
|
||||
readonly context = getCheckRunContext()
|
||||
@@ -50,7 +54,7 @@ class TestReporter {
|
||||
constructor() {
|
||||
this.octokit = github.getOctokit(this.token)
|
||||
|
||||
if (this.listSuites !== 'all' && this.listSuites !== 'failed') {
|
||||
if (this.listSuites !== 'all' && this.listSuites !== 'failed' && this.listSuites !== 'none') {
|
||||
core.setFailed(`Input parameter 'list-suites' has invalid value`)
|
||||
return
|
||||
}
|
||||
@@ -160,51 +164,61 @@ class TestReporter {
|
||||
}
|
||||
}
|
||||
|
||||
core.info(`Creating check run ${name}`)
|
||||
const createResp = await this.octokit.rest.checks.create({
|
||||
head_sha: this.context.sha,
|
||||
name,
|
||||
status: 'in_progress',
|
||||
output: {
|
||||
title: name,
|
||||
summary: ''
|
||||
},
|
||||
...github.context.repo
|
||||
})
|
||||
const {listSuites, listTests, onlySummary, useActionsSummary, badgeTitle} = this
|
||||
|
||||
core.info('Creating report summary')
|
||||
const {listSuites, listTests, onlySummary} = this
|
||||
const baseUrl = createResp.data.html_url as string
|
||||
const summary = getReport(results, {listSuites, listTests, baseUrl, onlySummary})
|
||||
let baseUrl = ''
|
||||
if (this.useActionsSummary) {
|
||||
const summary = getReport(results, {listSuites, listTests, baseUrl, onlySummary, useActionsSummary, badgeTitle})
|
||||
|
||||
core.info('Creating annotations')
|
||||
const annotations = getAnnotations(results, this.maxAnnotations)
|
||||
core.info('Summary content:')
|
||||
core.info(summary)
|
||||
await core.summary.addRaw(summary).write()
|
||||
} else {
|
||||
core.info(`Creating check run ${name}`)
|
||||
const createResp = await this.octokit.rest.checks.create({
|
||||
head_sha: this.context.sha,
|
||||
name,
|
||||
status: 'in_progress',
|
||||
output: {
|
||||
title: name,
|
||||
summary: ''
|
||||
},
|
||||
...github.context.repo
|
||||
})
|
||||
|
||||
const isFailed = this.failOnError && results.some(tr => tr.result === 'failed')
|
||||
const conclusion = isFailed ? 'failure' : 'success'
|
||||
core.info('Creating report summary')
|
||||
baseUrl = createResp.data.html_url as string
|
||||
const summary = getReport(results, {listSuites, listTests, baseUrl, onlySummary, useActionsSummary, badgeTitle})
|
||||
|
||||
const passed = results.reduce((sum, tr) => sum + tr.passed, 0)
|
||||
const failed = results.reduce((sum, tr) => sum + tr.failed, 0)
|
||||
const skipped = results.reduce((sum, tr) => sum + tr.skipped, 0)
|
||||
const shortSummary = `${passed} passed, ${failed} failed and ${skipped} skipped `
|
||||
core.info('Creating annotations')
|
||||
const annotations = getAnnotations(results, this.maxAnnotations)
|
||||
|
||||
core.info(`Updating check run conclusion (${conclusion}) and output`)
|
||||
const resp = await this.octokit.rest.checks.update({
|
||||
check_run_id: createResp.data.id,
|
||||
conclusion,
|
||||
status: 'completed',
|
||||
output: {
|
||||
title: shortSummary,
|
||||
summary,
|
||||
annotations
|
||||
},
|
||||
...github.context.repo
|
||||
})
|
||||
core.info(`Check run create response: ${resp.status}`)
|
||||
core.info(`Check run URL: ${resp.data.url}`)
|
||||
core.info(`Check run HTML: ${resp.data.html_url}`)
|
||||
core.setOutput('url', resp.data.url)
|
||||
core.setOutput('url_html', resp.data.html_url)
|
||||
const isFailed = this.failOnError && results.some(tr => tr.result === 'failed')
|
||||
const conclusion = isFailed ? 'failure' : 'success'
|
||||
|
||||
const passed = results.reduce((sum, tr) => sum + tr.passed, 0)
|
||||
const failed = results.reduce((sum, tr) => sum + tr.failed, 0)
|
||||
const skipped = results.reduce((sum, tr) => sum + tr.skipped, 0)
|
||||
const shortSummary = `${passed} passed, ${failed} failed and ${skipped} skipped `
|
||||
|
||||
core.info(`Updating check run conclusion (${conclusion}) and output`)
|
||||
const resp = await this.octokit.rest.checks.update({
|
||||
check_run_id: createResp.data.id,
|
||||
conclusion,
|
||||
status: 'completed',
|
||||
output: {
|
||||
title: shortSummary,
|
||||
summary,
|
||||
annotations
|
||||
},
|
||||
...github.context.repo
|
||||
})
|
||||
core.info(`Check run create response: ${resp.status}`)
|
||||
core.info(`Check run URL: ${resp.data.url}`)
|
||||
core.info(`Check run HTML: ${resp.data.html_url}`)
|
||||
core.setOutput('url', resp.data.url)
|
||||
core.setOutput('url_html', resp.data.html_url)
|
||||
}
|
||||
|
||||
return results
|
||||
}
|
||||
@@ -213,6 +227,8 @@ class TestReporter {
|
||||
switch (reporter) {
|
||||
case 'dart-json':
|
||||
return new DartJsonParser(options, 'dart')
|
||||
case 'dotnet-nunit':
|
||||
return new DotnetNunitParser(options)
|
||||
case 'dotnet-trx':
|
||||
return new DotnetTrxParser(options)
|
||||
case 'flutter-json':
|
||||
@@ -223,6 +239,8 @@ class TestReporter {
|
||||
return new JestJunitParser(options)
|
||||
case 'mocha-json':
|
||||
return new MochaJsonParser(options)
|
||||
case 'rspec-json':
|
||||
return new RspecJsonParser(options)
|
||||
case 'swift-xunit':
|
||||
return new SwiftXunitParser(options)
|
||||
default:
|
||||
|
||||
@@ -123,7 +123,7 @@ export class DartJsonParser implements TestParser {
|
||||
const group = suite.groups[evt.test.groupIDs[evt.test.groupIDs.length - 1]]
|
||||
group.tests.push(test)
|
||||
tests[evt.test.id] = test
|
||||
} else if (isTestDoneEvent(evt) && !evt.hidden && tests[evt.testID]) {
|
||||
} else if (isTestDoneEvent(evt) && tests[evt.testID]) {
|
||||
tests[evt.testID].testDone = evt
|
||||
} else if (isErrorEvent(evt) && tests[evt.testID]) {
|
||||
tests[evt.testID].error = evt
|
||||
@@ -152,14 +152,16 @@ export class DartJsonParser implements TestParser {
|
||||
|
||||
return groups.map(group => {
|
||||
group.tests.sort((a, b) => (a.testStart.test.line ?? 0) - (b.testStart.test.line ?? 0))
|
||||
const tests = group.tests.map(tc => {
|
||||
const error = this.getError(suite, tc)
|
||||
const testName =
|
||||
group.group.name !== undefined && tc.testStart.test.name.startsWith(group.group.name)
|
||||
? tc.testStart.test.name.slice(group.group.name.length).trim()
|
||||
: tc.testStart.test.name.trim()
|
||||
return new TestCaseResult(testName, tc.result, tc.time, error)
|
||||
})
|
||||
const tests = group.tests
|
||||
.filter(tc => !tc.testDone?.hidden)
|
||||
.map(tc => {
|
||||
const error = this.getError(suite, tc)
|
||||
const testName =
|
||||
group.group.name !== undefined && tc.testStart.test.name.startsWith(group.group.name)
|
||||
? tc.testStart.test.name.slice(group.group.name.length).trim()
|
||||
: tc.testStart.test.name.trim()
|
||||
return new TestCaseResult(testName, tc.result, tc.time, error)
|
||||
})
|
||||
return new TestGroupResult(group.group.name, tests)
|
||||
})
|
||||
}
|
||||
|
||||
151
src/parsers/dotnet-nunit/dotnet-nunit-parser.ts
Normal file
151
src/parsers/dotnet-nunit/dotnet-nunit-parser.ts
Normal file
@@ -0,0 +1,151 @@
|
||||
import {ParseOptions, TestParser} from '../../test-parser'
|
||||
import {parseStringPromise} from 'xml2js'
|
||||
|
||||
import {NunitReport, TestCase, TestSuite} from './dotnet-nunit-types'
|
||||
import {getExceptionSource} from '../../utils/node-utils'
|
||||
import {getBasePath, normalizeFilePath} from '../../utils/path-utils'
|
||||
|
||||
import {
|
||||
TestExecutionResult,
|
||||
TestRunResult,
|
||||
TestSuiteResult,
|
||||
TestGroupResult,
|
||||
TestCaseResult,
|
||||
TestCaseError
|
||||
} from '../../test-results'
|
||||
|
||||
export class DotnetNunitParser implements TestParser {
|
||||
assumedWorkDir: string | undefined
|
||||
|
||||
constructor(readonly options: ParseOptions) {}
|
||||
|
||||
async parse(path: string, content: string): Promise<TestRunResult> {
|
||||
const ju = await this.getNunitReport(path, content)
|
||||
return this.getTestRunResult(path, ju)
|
||||
}
|
||||
|
||||
private async getNunitReport(path: string, content: string): Promise<NunitReport> {
|
||||
try {
|
||||
return (await parseStringPromise(content)) as NunitReport
|
||||
} catch (e) {
|
||||
throw new Error(`Invalid XML at ${path}\n\n${e}`)
|
||||
}
|
||||
}
|
||||
|
||||
private getTestRunResult(path: string, nunit: NunitReport): TestRunResult {
|
||||
const suites: TestSuiteResult[] = []
|
||||
const time = parseFloat(nunit['test-run'].$.duration) * 1000
|
||||
|
||||
this.populateTestCasesRecursive(suites, [], nunit['test-run']['test-suite'])
|
||||
|
||||
return new TestRunResult(path, suites, time)
|
||||
}
|
||||
|
||||
private populateTestCasesRecursive(
|
||||
result: TestSuiteResult[],
|
||||
suitePath: TestSuite[],
|
||||
testSuites: TestSuite[] | undefined
|
||||
): void {
|
||||
if (testSuites === undefined) {
|
||||
return
|
||||
}
|
||||
|
||||
for (const suite of testSuites) {
|
||||
suitePath.push(suite)
|
||||
|
||||
this.populateTestCasesRecursive(result, suitePath, suite['test-suite'])
|
||||
|
||||
const testcases = suite['test-case']
|
||||
if (testcases !== undefined) {
|
||||
for (const testcase of testcases) {
|
||||
this.addTestCase(result, suitePath, testcase)
|
||||
}
|
||||
}
|
||||
|
||||
suitePath.pop()
|
||||
}
|
||||
}
|
||||
|
||||
private addTestCase(result: TestSuiteResult[], suitePath: TestSuite[], testCase: TestCase): void {
|
||||
// The last suite in the suite path is the "group".
|
||||
// The rest are concatenated together to form the "suite".
|
||||
// But ignore "Theory" suites.
|
||||
const suitesWithoutTheories = suitePath.filter(suite => suite.$.type !== 'Theory')
|
||||
const suiteName = suitesWithoutTheories
|
||||
.slice(0, suitesWithoutTheories.length - 1)
|
||||
.map(suite => suite.$.name)
|
||||
.join('.')
|
||||
const groupName = suitesWithoutTheories[suitesWithoutTheories.length - 1].$.name
|
||||
|
||||
let existingSuite = result.find(existingSuite => existingSuite.name === suiteName)
|
||||
if (existingSuite === undefined) {
|
||||
existingSuite = new TestSuiteResult(suiteName, [])
|
||||
result.push(existingSuite)
|
||||
}
|
||||
|
||||
let existingGroup = existingSuite.groups.find(existingGroup => existingGroup.name === groupName)
|
||||
if (existingGroup === undefined) {
|
||||
existingGroup = new TestGroupResult(groupName, [])
|
||||
existingSuite.groups.push(existingGroup)
|
||||
}
|
||||
|
||||
existingGroup.tests.push(
|
||||
new TestCaseResult(
|
||||
testCase.$.name,
|
||||
this.getTestExecutionResult(testCase),
|
||||
parseFloat(testCase.$.duration) * 1000,
|
||||
this.getTestCaseError(testCase)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
private getTestExecutionResult(test: TestCase): TestExecutionResult {
|
||||
if (test.$.result === 'Failed' || test.failure) return 'failed'
|
||||
if (test.$.result === 'Skipped') return 'skipped'
|
||||
return 'success'
|
||||
}
|
||||
|
||||
private getTestCaseError(tc: TestCase): TestCaseError | undefined {
|
||||
if (!this.options.parseErrors || !tc.failure || tc.failure.length === 0) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
const details = tc.failure[0]
|
||||
let path
|
||||
let line
|
||||
|
||||
if (details['stack-trace'] !== undefined && details['stack-trace'].length > 0) {
|
||||
const src = getExceptionSource(details['stack-trace'][0], this.options.trackedFiles, file =>
|
||||
this.getRelativePath(file)
|
||||
)
|
||||
if (src) {
|
||||
path = src.path
|
||||
line = src.line
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
path,
|
||||
line,
|
||||
message: details.message && details.message.length > 0 ? details.message[0] : '',
|
||||
details: details['stack-trace'] && details['stack-trace'].length > 0 ? details['stack-trace'][0] : ''
|
||||
}
|
||||
}
|
||||
|
||||
private getRelativePath(path: string): string {
|
||||
path = normalizeFilePath(path)
|
||||
const workDir = this.getWorkDir(path)
|
||||
if (workDir !== undefined && path.startsWith(workDir)) {
|
||||
path = path.substr(workDir.length)
|
||||
}
|
||||
return path
|
||||
}
|
||||
|
||||
private getWorkDir(path: string): string | undefined {
|
||||
return (
|
||||
this.options.workDir ??
|
||||
this.assumedWorkDir ??
|
||||
(this.assumedWorkDir = getBasePath(path, this.options.trackedFiles))
|
||||
)
|
||||
}
|
||||
}
|
||||
57
src/parsers/dotnet-nunit/dotnet-nunit-types.ts
Normal file
57
src/parsers/dotnet-nunit/dotnet-nunit-types.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
export interface NunitReport {
|
||||
'test-run': TestRun
|
||||
}
|
||||
|
||||
export interface TestRun {
|
||||
$: {
|
||||
id: string
|
||||
runstate: string
|
||||
testcasecount: string
|
||||
result: string
|
||||
total: string
|
||||
passed: string
|
||||
failed: string
|
||||
inconclusive: string
|
||||
skipped: string
|
||||
asserts: string
|
||||
'engine-version': string
|
||||
'clr-version': string
|
||||
'start-time': string
|
||||
'end-time': string
|
||||
duration: string
|
||||
}
|
||||
'test-suite'?: TestSuite[]
|
||||
}
|
||||
|
||||
export interface TestSuite {
|
||||
$: {
|
||||
name: string
|
||||
type: string
|
||||
}
|
||||
'test-case'?: TestCase[]
|
||||
'test-suite'?: TestSuite[]
|
||||
}
|
||||
|
||||
export interface TestCase {
|
||||
$: {
|
||||
id: string
|
||||
name: string
|
||||
fullname: string
|
||||
methodname: string
|
||||
classname: string
|
||||
runstate: string
|
||||
seed: string
|
||||
result: string
|
||||
label: string
|
||||
'start-time': string
|
||||
'end-time': string
|
||||
duration: string
|
||||
asserts: string
|
||||
}
|
||||
failure?: TestFailure[]
|
||||
}
|
||||
|
||||
export interface TestFailure {
|
||||
message?: string[]
|
||||
'stack-trace'?: string[]
|
||||
}
|
||||
@@ -137,11 +137,18 @@ export class JavaJunitParser implements TestParser {
|
||||
}
|
||||
}
|
||||
|
||||
let message
|
||||
if (typeof failure === 'object') {
|
||||
message = failure.$.message
|
||||
if (failure.$?.type) {
|
||||
message = failure.$.type + ': ' + message
|
||||
}
|
||||
}
|
||||
return {
|
||||
path: filePath,
|
||||
line,
|
||||
details,
|
||||
message: typeof failure === 'object' ? failure.message : undefined
|
||||
message
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,6 +40,8 @@ export interface TestCase {
|
||||
|
||||
export interface Failure {
|
||||
_: string
|
||||
type: string
|
||||
message: string
|
||||
$: {
|
||||
type?: string
|
||||
message: string
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ export class JestJunitParser implements TestParser {
|
||||
return sr
|
||||
})
|
||||
|
||||
const time = parseFloat(junit.testsuites.$.time) * 1000
|
||||
const time = junit.testsuites.$ && parseFloat(junit.testsuites.$.time) * 1000
|
||||
return new TestRunResult(path, suites, time)
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ export class JestJunitParser implements TestParser {
|
||||
return undefined
|
||||
}
|
||||
|
||||
const details = tc.failure[0]
|
||||
const details = typeof tc.failure[0] === 'string' ? tc.failure[0] : tc.failure[0]['_']
|
||||
let path
|
||||
let line
|
||||
|
||||
|
||||
112
src/parsers/rspec-json/rspec-json-parser.ts
Normal file
112
src/parsers/rspec-json/rspec-json-parser.ts
Normal file
@@ -0,0 +1,112 @@
|
||||
import {ParseOptions, TestParser} from '../../test-parser'
|
||||
import {
|
||||
TestCaseError,
|
||||
TestCaseResult,
|
||||
TestExecutionResult,
|
||||
TestGroupResult,
|
||||
TestRunResult,
|
||||
TestSuiteResult
|
||||
} from '../../test-results'
|
||||
import {RspecJson, RspecExample} from './rspec-json-types'
|
||||
|
||||
export class RspecJsonParser implements TestParser {
|
||||
assumedWorkDir: string | undefined
|
||||
|
||||
constructor(readonly options: ParseOptions) {}
|
||||
|
||||
async parse(path: string, content: string): Promise<TestRunResult> {
|
||||
const mocha = this.getRspecJson(path, content)
|
||||
const result = this.getTestRunResult(path, mocha)
|
||||
result.sort(true)
|
||||
return Promise.resolve(result)
|
||||
}
|
||||
|
||||
private getRspecJson(path: string, content: string): RspecJson {
|
||||
try {
|
||||
return JSON.parse(content)
|
||||
} catch (e) {
|
||||
throw new Error(`Invalid JSON at ${path}\n\n${e}`)
|
||||
}
|
||||
}
|
||||
|
||||
private getTestRunResult(resultsPath: string, rspec: RspecJson): TestRunResult {
|
||||
const suitesMap: {[path: string]: TestSuiteResult} = {}
|
||||
|
||||
const getSuite = (test: RspecExample): TestSuiteResult => {
|
||||
const path = test.file_path
|
||||
return suitesMap[path] ?? (suitesMap[path] = new TestSuiteResult(path, []))
|
||||
}
|
||||
|
||||
for (const test of rspec.examples) {
|
||||
const suite = getSuite(test)
|
||||
if (test.status === 'failed') {
|
||||
this.processTest(suite, test, 'failed')
|
||||
} else if (test.status === 'passed') {
|
||||
this.processTest(suite, test, 'success')
|
||||
} else if (test.status === 'pending') {
|
||||
this.processTest(suite, test, 'skipped')
|
||||
}
|
||||
}
|
||||
|
||||
const suites = Object.values(suitesMap)
|
||||
return new TestRunResult(resultsPath, suites, rspec.summary.duration)
|
||||
}
|
||||
|
||||
private processTest(suite: TestSuiteResult, test: RspecExample, result: TestExecutionResult): void {
|
||||
const groupName =
|
||||
test.full_description !== test.description
|
||||
? test.full_description.substr(0, test.full_description.length - test.description.length).trimEnd()
|
||||
: null
|
||||
|
||||
let group = suite.groups.find(grp => grp.name === groupName)
|
||||
if (group === undefined) {
|
||||
group = new TestGroupResult(groupName, [])
|
||||
suite.groups.push(group)
|
||||
}
|
||||
|
||||
const error = this.getTestCaseError(test)
|
||||
const testCase = new TestCaseResult(test.full_description, result, test.run_time ?? 0, error)
|
||||
group.tests.push(testCase)
|
||||
}
|
||||
|
||||
private getTestCaseError(test: RspecExample): TestCaseError | undefined {
|
||||
const backtrace = test.exception?.backtrace
|
||||
const message = test.exception?.message
|
||||
if (backtrace === undefined) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
let path
|
||||
let line
|
||||
const details = backtrace.join('\n')
|
||||
|
||||
const src = this.getExceptionSource(backtrace)
|
||||
if (src) {
|
||||
path = src.path
|
||||
line = src.line
|
||||
}
|
||||
|
||||
return {
|
||||
path,
|
||||
line,
|
||||
message,
|
||||
details
|
||||
}
|
||||
}
|
||||
|
||||
private getExceptionSource(backtrace: string[]): {path: string; line: number} | undefined {
|
||||
const re = /^(.*?):(\d+):/
|
||||
|
||||
for (const str of backtrace) {
|
||||
const match = str.match(re)
|
||||
if (match !== null) {
|
||||
const [_, path, lineStr] = match
|
||||
if (path.startsWith('./')) {
|
||||
const line = parseInt(lineStr)
|
||||
return {path, line}
|
||||
}
|
||||
}
|
||||
}
|
||||
return undefined
|
||||
}
|
||||
}
|
||||
34
src/parsers/rspec-json/rspec-json-types.ts
Normal file
34
src/parsers/rspec-json/rspec-json-types.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
export interface RspecJson {
|
||||
version: number
|
||||
examples: RspecExample[]
|
||||
summary: RspecSummary
|
||||
summary_line: string
|
||||
}
|
||||
|
||||
export interface RspecExample {
|
||||
id: string
|
||||
description: string
|
||||
full_description: string
|
||||
status: TestStatus
|
||||
file_path: string
|
||||
line_number: number
|
||||
run_time: number
|
||||
pending_message: string | null
|
||||
exception?: RspecException
|
||||
}
|
||||
|
||||
type TestStatus = 'passed' | 'failed' | 'pending'
|
||||
|
||||
export interface RspecException {
|
||||
class: string
|
||||
message: string
|
||||
backtrace: string[]
|
||||
}
|
||||
|
||||
export interface RspecSummary {
|
||||
duration: number
|
||||
example_count: number
|
||||
failure_count: number
|
||||
pending_count: number
|
||||
errors_outside_of_examples_count: number
|
||||
}
|
||||
@@ -6,19 +6,24 @@ import {getFirstNonEmptyLine} from '../utils/parse-utils'
|
||||
import {slug} from '../utils/slugger'
|
||||
|
||||
const MAX_REPORT_LENGTH = 65535
|
||||
const MAX_ACTIONS_SUMMARY_LENGTH = 131072 // 1048576 soon
|
||||
|
||||
export interface ReportOptions {
|
||||
listSuites: 'all' | 'failed'
|
||||
listSuites: 'all' | 'failed' | 'none'
|
||||
listTests: 'all' | 'failed' | 'none'
|
||||
baseUrl: string
|
||||
onlySummary: boolean
|
||||
useActionsSummary: boolean
|
||||
badgeTitle: string
|
||||
}
|
||||
|
||||
const defaultOptions: ReportOptions = {
|
||||
listSuites: 'all',
|
||||
listTests: 'all',
|
||||
baseUrl: '',
|
||||
onlySummary: false
|
||||
onlySummary: false,
|
||||
useActionsSummary: true,
|
||||
badgeTitle: 'tests'
|
||||
}
|
||||
|
||||
export function getReport(results: TestRunResult[], options: ReportOptions = defaultOptions): string {
|
||||
@@ -30,7 +35,7 @@ export function getReport(results: TestRunResult[], options: ReportOptions = def
|
||||
let lines = renderReport(results, opts)
|
||||
let report = lines.join('\n')
|
||||
|
||||
if (getByteLength(report) <= MAX_REPORT_LENGTH) {
|
||||
if (getByteLength(report) <= getMaxReportLength(options)) {
|
||||
return report
|
||||
}
|
||||
|
||||
@@ -39,20 +44,24 @@ export function getReport(results: TestRunResult[], options: ReportOptions = def
|
||||
opts.listTests = 'failed'
|
||||
lines = renderReport(results, opts)
|
||||
report = lines.join('\n')
|
||||
if (getByteLength(report) <= MAX_REPORT_LENGTH) {
|
||||
if (getByteLength(report) <= getMaxReportLength(options)) {
|
||||
return report
|
||||
}
|
||||
}
|
||||
|
||||
core.warning(`Test report summary exceeded limit of ${MAX_REPORT_LENGTH} bytes and will be trimmed`)
|
||||
return trimReport(lines)
|
||||
core.warning(`Test report summary exceeded limit of ${getMaxReportLength(options)} bytes and will be trimmed`)
|
||||
return trimReport(lines, options)
|
||||
}
|
||||
|
||||
function trimReport(lines: string[]): string {
|
||||
function getMaxReportLength(options: ReportOptions = defaultOptions): number {
|
||||
return options.useActionsSummary ? MAX_ACTIONS_SUMMARY_LENGTH : MAX_REPORT_LENGTH
|
||||
}
|
||||
|
||||
function trimReport(lines: string[], options: ReportOptions): string {
|
||||
const closingBlock = '```'
|
||||
const errorMsg = `**Report exceeded GitHub limit of ${MAX_REPORT_LENGTH} bytes and has been trimmed**`
|
||||
const errorMsg = `**Report exceeded GitHub limit of ${getMaxReportLength(options)} bytes and has been trimmed**`
|
||||
const maxErrorMsgLength = closingBlock.length + errorMsg.length + 2
|
||||
const maxReportLength = MAX_REPORT_LENGTH - maxErrorMsgLength
|
||||
const maxReportLength = getMaxReportLength(options) - maxErrorMsgLength
|
||||
|
||||
let reportLength = 0
|
||||
let codeBlock = false
|
||||
@@ -92,7 +101,7 @@ function getByteLength(text: string): number {
|
||||
|
||||
function renderReport(results: TestRunResult[], options: ReportOptions): string[] {
|
||||
const sections: string[] = []
|
||||
const badge = getReportBadge(results)
|
||||
const badge = getReportBadge(results, options)
|
||||
sections.push(badge)
|
||||
|
||||
const runs = getTestRunsReport(results, options)
|
||||
@@ -101,14 +110,14 @@ function renderReport(results: TestRunResult[], options: ReportOptions): string[
|
||||
return sections
|
||||
}
|
||||
|
||||
function getReportBadge(results: TestRunResult[]): string {
|
||||
function getReportBadge(results: TestRunResult[], options: ReportOptions): string {
|
||||
const passed = results.reduce((sum, tr) => sum + tr.passed, 0)
|
||||
const skipped = results.reduce((sum, tr) => sum + tr.skipped, 0)
|
||||
const failed = results.reduce((sum, tr) => sum + tr.failed, 0)
|
||||
return getBadge(passed, failed, skipped)
|
||||
return getBadge(passed, failed, skipped, options)
|
||||
}
|
||||
|
||||
function getBadge(passed: number, failed: number, skipped: number): string {
|
||||
function getBadge(passed: number, failed: number, skipped: number, options: ReportOptions): string {
|
||||
const text = []
|
||||
if (passed > 0) {
|
||||
text.push(`${passed} passed`)
|
||||
@@ -128,24 +137,29 @@ function getBadge(passed: number, failed: number, skipped: number): string {
|
||||
color = 'yellow'
|
||||
}
|
||||
const hint = failed > 0 ? 'Tests failed' : 'Tests passed successfully'
|
||||
const uri = encodeURIComponent(`tests-${message}-${color}`)
|
||||
const uri = encodeURIComponent(`${options.badgeTitle}-${message}-${color}`)
|
||||
return ``
|
||||
}
|
||||
|
||||
function getTestRunsReport(testRuns: TestRunResult[], options: ReportOptions): string[] {
|
||||
const sections: string[] = []
|
||||
const totalFailed = testRuns.reduce((sum, tr) => sum + tr.failed, 0)
|
||||
if (totalFailed === 0) {
|
||||
sections.push(`<details><summary>Expand for details</summary>`)
|
||||
sections.push(` `)
|
||||
}
|
||||
|
||||
if (testRuns.length > 1 || options.onlySummary) {
|
||||
const tableData = testRuns.map((tr, runIndex) => {
|
||||
const time = formatTime(tr.time)
|
||||
const name = tr.path
|
||||
const addr = options.baseUrl + makeRunSlug(runIndex).link
|
||||
const nameLink = link(name, addr)
|
||||
const passed = tr.passed > 0 ? `${tr.passed}${Icon.success}` : ''
|
||||
const failed = tr.failed > 0 ? `${tr.failed}${Icon.fail}` : ''
|
||||
const skipped = tr.skipped > 0 ? `${tr.skipped}${Icon.skip}` : ''
|
||||
return [nameLink, passed, failed, skipped, time]
|
||||
})
|
||||
if (testRuns.length > 0 || options.onlySummary) {
|
||||
const tableData = testRuns
|
||||
.filter(tr => tr.passed > 0 || tr.failed > 0 || tr.skipped > 0)
|
||||
.map(tr => {
|
||||
const time = formatTime(tr.time)
|
||||
const name = tr.path
|
||||
const passed = tr.passed > 0 ? `${tr.passed} ${Icon.success}` : ''
|
||||
const failed = tr.failed > 0 ? `${tr.failed} ${Icon.fail}` : ''
|
||||
const skipped = tr.skipped > 0 ? `${tr.skipped} ${Icon.skip}` : ''
|
||||
return [name, passed, failed, skipped, time]
|
||||
})
|
||||
|
||||
const resultsTable = table(
|
||||
['Report', 'Passed', 'Failed', 'Skipped', 'Time'],
|
||||
@@ -159,42 +173,48 @@ function getTestRunsReport(testRuns: TestRunResult[], options: ReportOptions): s
|
||||
const suitesReports = testRuns.map((tr, i) => getSuitesReport(tr, i, options)).flat()
|
||||
sections.push(...suitesReports)
|
||||
}
|
||||
|
||||
if (totalFailed === 0) {
|
||||
sections.push(`</details>`)
|
||||
}
|
||||
return sections
|
||||
}
|
||||
|
||||
function getSuitesReport(tr: TestRunResult, runIndex: number, options: ReportOptions): string[] {
|
||||
const sections: string[] = []
|
||||
|
||||
const trSlug = makeRunSlug(runIndex)
|
||||
const nameLink = `<a id="${trSlug.id}" href="${options.baseUrl + trSlug.link}">${tr.path}</a>`
|
||||
const icon = getResultIcon(tr.result)
|
||||
sections.push(`## ${icon}\xa0${nameLink}`)
|
||||
|
||||
const time = formatTime(tr.time)
|
||||
const headingLine2 =
|
||||
tr.tests > 0
|
||||
? `**${tr.tests}** tests were completed in **${time}** with **${tr.passed}** passed, **${tr.failed}** failed and **${tr.skipped}** skipped.`
|
||||
: 'No tests found'
|
||||
sections.push(headingLine2)
|
||||
|
||||
const suites = options.listSuites === 'failed' ? tr.failedSuites : tr.suites
|
||||
if (suites.length > 0) {
|
||||
const suitesTable = table(
|
||||
['Test suite', 'Passed', 'Failed', 'Skipped', 'Time'],
|
||||
[Align.Left, Align.Right, Align.Right, Align.Right, Align.Right],
|
||||
...suites.map((s, suiteIndex) => {
|
||||
const tsTime = formatTime(s.time)
|
||||
const tsName = s.name
|
||||
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)
|
||||
const passed = s.passed > 0 ? `${s.passed}${Icon.success}` : ''
|
||||
const failed = s.failed > 0 ? `${s.failed}${Icon.fail}` : ''
|
||||
const skipped = s.skipped > 0 ? `${s.skipped}${Icon.skip}` : ''
|
||||
return [tsNameLink, passed, failed, skipped, tsTime]
|
||||
})
|
||||
)
|
||||
sections.push(suitesTable)
|
||||
|
||||
if (options.listSuites !== 'none') {
|
||||
const trSlug = makeRunSlug(runIndex)
|
||||
const nameLink = `<a id="${trSlug.id}" href="${options.baseUrl + trSlug.link}">${tr.path}</a>`
|
||||
const icon = getResultIcon(tr.result)
|
||||
sections.push(`## ${icon}\xa0${nameLink}`)
|
||||
|
||||
const time = formatTime(tr.time)
|
||||
const headingLine2 =
|
||||
tr.tests > 0
|
||||
? `**${tr.tests}** tests were completed in **${time}** with **${tr.passed}** passed, **${tr.failed}** failed and **${tr.skipped}** skipped.`
|
||||
: 'No tests found'
|
||||
sections.push(headingLine2)
|
||||
|
||||
if (suites.length > 0) {
|
||||
const suitesTable = table(
|
||||
['Test suite', 'Passed', 'Failed', 'Skipped', 'Time'],
|
||||
[Align.Left, Align.Right, Align.Right, Align.Right, Align.Right],
|
||||
...suites.map((s, suiteIndex) => {
|
||||
const tsTime = formatTime(s.time)
|
||||
const tsName = s.name
|
||||
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)
|
||||
const passed = s.passed > 0 ? `${s.passed} ${Icon.success}` : ''
|
||||
const failed = s.failed > 0 ? `${s.failed} ${Icon.fail}` : ''
|
||||
const skipped = s.skipped > 0 ? `${s.skipped} ${Icon.skip}` : ''
|
||||
return [tsNameLink, passed, failed, skipped, tsTime]
|
||||
})
|
||||
)
|
||||
sections.push(suitesTable)
|
||||
}
|
||||
}
|
||||
|
||||
if (options.listTests !== 'none') {
|
||||
|
||||
@@ -50,33 +50,17 @@ export async function downloadArtifact(
|
||||
const headers = {
|
||||
Authorization: `Bearer ${token}`
|
||||
}
|
||||
const resp = await got(req.url, {
|
||||
headers,
|
||||
followRedirect: false
|
||||
})
|
||||
|
||||
core.info(`Fetch artifact URL: ${resp.statusCode} ${resp.statusMessage}`)
|
||||
if (resp.statusCode !== 302) {
|
||||
throw new Error('Fetch artifact URL failed: received unexpected status code')
|
||||
}
|
||||
|
||||
const url = resp.headers.location
|
||||
if (url === undefined) {
|
||||
const receivedHeaders = Object.keys(resp.headers)
|
||||
core.info(`Received headers: ${receivedHeaders.join(', ')}`)
|
||||
throw new Error('Location header was not found in API response')
|
||||
}
|
||||
if (typeof url !== 'string') {
|
||||
throw new Error(`Location header has unexpected value: ${url}`)
|
||||
}
|
||||
|
||||
const downloadStream = got.stream(url, {headers})
|
||||
const downloadStream = got.stream(req.url, {headers})
|
||||
const fileWriterStream = createWriteStream(fileName)
|
||||
|
||||
core.info(`Downloading ${url}`)
|
||||
downloadStream.on('redirect', response => {
|
||||
core.info(`Downloading ${response.headers.location}`)
|
||||
})
|
||||
downloadStream.on('downloadProgress', ({transferred}) => {
|
||||
core.info(`Progress: ${transferred} B`)
|
||||
})
|
||||
|
||||
await asyncStream(downloadStream, fileWriterStream)
|
||||
} finally {
|
||||
core.endGroup()
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
|
||||
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
||||
"outDir": "./lib", /* Redirect output structure to the directory. */
|
||||
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
|
||||
"strict": true, /* Enable all strict type-checking options. */
|
||||
"noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
|
||||
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
||||
"lib": ["es2023"],
|
||||
"module": "node16",
|
||||
"target": "es2022",
|
||||
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
"moduleResolution": "node16",
|
||||
|
||||
"outDir": "./lib",
|
||||
"rootDir": "./src",
|
||||
},
|
||||
"exclude": ["node_modules", "**/*.test.ts"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user