mirror of
https://github.com/dorny/test-reporter.git
synced 2026-02-02 11:25:21 -08:00
Compare commits
86 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
afe6793191 | ||
|
|
5c714d27be | ||
|
|
f3a6ff2ed4 | ||
|
|
4eb4bc24cc | ||
|
|
91ccfa2026 | ||
|
|
9301b44e65 | ||
|
|
bd1b0de0a3 | ||
|
|
d132e07d7b | ||
|
|
a677deca36 | ||
|
|
8b17ce49e0 | ||
|
|
36f318e411 | ||
|
|
dd9d115889 | ||
|
|
efc4fb37d0 | ||
|
|
06d7fcc876 | ||
|
|
19f5a0d16b | ||
|
|
b09b166dac | ||
|
|
92138a66fc | ||
|
|
148c3e5c6d | ||
|
|
dcaa140ba1 | ||
|
|
61135b8121 | ||
|
|
62386e9601 | ||
|
|
b5ef0e7f1f | ||
|
|
3fcc30fab5 | ||
|
|
eb71782ba1 | ||
|
|
54a8c3cafe | ||
|
|
f120b1e36c | ||
|
|
76dd0e0b7b | ||
|
|
ef9ec10825 | ||
|
|
bc48d4dfff | ||
|
|
a02f895e5a | ||
|
|
589592494f | ||
|
|
ac305c191c | ||
|
|
76a051e007 | ||
|
|
28dac3b115 | ||
|
|
476b57a800 | ||
|
|
0ada353da4 | ||
|
|
948526218f | ||
|
|
f4404ee06a | ||
|
|
ea0fb9188a | ||
|
|
daece3018b | ||
|
|
d51dd9ab50 | ||
|
|
2cc6a8c9ef | ||
|
|
9e78da5e1b | ||
|
|
2f005230e2 | ||
|
|
2868c9aa28 | ||
|
|
279d40aa15 | ||
|
|
375f855d6c | ||
|
|
e9fa2f582c | ||
|
|
3963c5302f | ||
|
|
33529f74ef | ||
|
|
ac8472f51a | ||
|
|
b45fb8b405 | ||
|
|
396026f3c5 | ||
|
|
a5c5b636ff | ||
|
|
75b0cadf5f | ||
|
|
0042016d8d | ||
|
|
15ec24088d | ||
|
|
e7733f494f | ||
|
|
8bf0c7d9a7 | ||
|
|
6af36d9ecf | ||
|
|
035c1f9d21 | ||
|
|
86d6ec5dd5 | ||
|
|
a91086638b | ||
|
|
f191e67022 | ||
|
|
578b47fbd3 | ||
|
|
aebbb4d7c4 | ||
|
|
3a48f6e045 | ||
|
|
e5edb614dd | ||
|
|
b41f730922 | ||
|
|
d71eea3059 | ||
|
|
074fe2cd27 | ||
|
|
3b54f63d95 | ||
|
|
48bf7af48b | ||
|
|
2f63fb86e1 | ||
|
|
21b00b9bcc | ||
|
|
f3b6327f90 | ||
|
|
59de73d003 | ||
|
|
3cca7492d0 | ||
|
|
ba1a54f2f4 | ||
|
|
ae902f665e | ||
|
|
a3356fa639 | ||
|
|
8b0cebbf1d | ||
|
|
19aaf9016e | ||
|
|
6bd7855a9d | ||
|
|
c3f44eaca3 | ||
|
|
d553414051 |
@@ -11,6 +11,7 @@
|
|||||||
"i18n-text/no-en": "off",
|
"i18n-text/no-en": "off",
|
||||||
"eslint-comments/no-use": "off",
|
"eslint-comments/no-use": "off",
|
||||||
"import/no-namespace": "off",
|
"import/no-namespace": "off",
|
||||||
|
"import/no-named-as-default": "off",
|
||||||
"no-shadow": "off",
|
"no-shadow": "off",
|
||||||
"no-unused-vars": "off",
|
"no-unused-vars": "off",
|
||||||
"prefer-template": "off",
|
"prefer-template": "off",
|
||||||
@@ -60,29 +61,7 @@
|
|||||||
},
|
},
|
||||||
"import/resolver": {
|
"import/resolver": {
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"alwaysTryTypes": true, // always try to resolve types under `<root>@types` directory even it doesn't contain any source code, like `@types/unist`
|
"alwaysTryTypes": true // always try to resolve types under `<root>@types` directory even it doesn't contain any source code, like `@types/unist`
|
||||||
|
|
||||||
// Choose from one of the "project" configs below or omit to use <root>/tsconfig.json by default
|
|
||||||
|
|
||||||
// use <root>/path/to/folder/tsconfig.json
|
|
||||||
"project": "path/to/folder",
|
|
||||||
|
|
||||||
// Multiple tsconfigs (Useful for monorepos)
|
|
||||||
|
|
||||||
// use a glob pattern
|
|
||||||
"project": "packages/*/tsconfig.json",
|
|
||||||
|
|
||||||
// use an array
|
|
||||||
"project": [
|
|
||||||
"packages/module-a/tsconfig.json",
|
|
||||||
"packages/module-b/tsconfig.json"
|
|
||||||
],
|
|
||||||
|
|
||||||
// use an array of glob patterns
|
|
||||||
"project": [
|
|
||||||
"packages/*/tsconfig.json",
|
|
||||||
"other-packages/*/tsconfig.json"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
10
.github/dependabot.yml
vendored
Normal file
10
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "npm"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
53
.github/workflows/check-dist.yml
vendored
Normal file
53
.github/workflows/check-dist.yml
vendored
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
# `dist/index.js` is a special file in Actions.
|
||||||
|
# When you reference an action with `uses:` in a workflow,
|
||||||
|
# `index.js` is the code that will run.
|
||||||
|
# For our project, we generate this file through a build process from other source files.
|
||||||
|
# We need to make sure the checked-in `index.js` actually matches what we expect it to be.
|
||||||
|
name: Check dist/
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths-ignore:
|
||||||
|
- '**.md'
|
||||||
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- '**.md'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-dist:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set Node.js 16.x
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 16.x
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Rebuild the dist/ directory
|
||||||
|
run: |
|
||||||
|
npm run build
|
||||||
|
npm run package
|
||||||
|
|
||||||
|
- name: Compare the expected and actual dist/ directories
|
||||||
|
run: |
|
||||||
|
if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then
|
||||||
|
echo "Detected uncommitted changes after build. See status below:"
|
||||||
|
git diff
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
id: diff
|
||||||
|
|
||||||
|
# If index.js was different than expected, upload the expected version as an artifact
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
|
||||||
|
with:
|
||||||
|
name: dist
|
||||||
|
path: dist/
|
||||||
12
.github/workflows/ci.yml
vendored
12
.github/workflows/ci.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
name: Build & Test
|
name: Build & Test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
- run: node --version
|
- run: node --version
|
||||||
- run: npm ci
|
- run: npm ci
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
@@ -23,15 +23,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Upload test results
|
- name: Upload test results
|
||||||
if: success() || failure()
|
if: success() || failure()
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: test-results
|
name: test-results
|
||||||
path: __tests__/__results__/*.xml
|
path: __tests__/__results__/*.xml
|
||||||
|
|
||||||
- name: Create test report
|
|
||||||
uses: ./
|
|
||||||
if: success() || failure()
|
|
||||||
with:
|
|
||||||
name: JEST Tests
|
|
||||||
path: __tests__/__results__/*.xml
|
|
||||||
reporter: jest-junit
|
|
||||||
|
|||||||
22
.github/workflows/manual-run.yml
vendored
Normal file
22
.github/workflows/manual-run.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
name: Manual run
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-dist:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- run: npm ci
|
||||||
|
- run: npm run build
|
||||||
|
- run: npm test
|
||||||
|
|
||||||
|
- name: Create test report
|
||||||
|
uses: ./
|
||||||
|
if: success() || failure()
|
||||||
|
with:
|
||||||
|
name: JEST Tests
|
||||||
|
path: __tests__/__results__/*.xml
|
||||||
|
reporter: jest-junit
|
||||||
2
.github/workflows/test-report.yml
vendored
2
.github/workflows/test-report.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
name: Workflow test
|
name: Workflow test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
artifact: test-results
|
artifact: test-results
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -100,3 +100,5 @@ lib/**/*
|
|||||||
|
|
||||||
# Project specific
|
# Project specific
|
||||||
__tests__/__results__
|
__tests__/__results__
|
||||||
|
|
||||||
|
.idea
|
||||||
|
|||||||
31
README.md
31
README.md
@@ -33,12 +33,16 @@ If that's fine for you, using this action is as simple as:
|
|||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
push:
|
push:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
actions: read
|
||||||
|
checks: write
|
||||||
jobs:
|
jobs:
|
||||||
build-test:
|
build-test:
|
||||||
name: Build & Test
|
name: Build & Test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2 # checkout the repo
|
- uses: actions/checkout@v3 # checkout the repo
|
||||||
- run: npm ci # install packages
|
- run: npm ci # install packages
|
||||||
- run: npm test # run tests (configured to use jest-junit reporter)
|
- run: npm test # run tests (configured to use jest-junit reporter)
|
||||||
|
|
||||||
@@ -58,6 +62,8 @@ To workaround this security restriction, it's required to use two separate workf
|
|||||||
1. `CI` runs in the context of the PR head branch with the read-only token. It executes the tests and uploads test results as a build artifact
|
1. `CI` runs in the context of the PR head branch with the read-only token. It executes the tests and uploads test results as a build artifact
|
||||||
2. `Test Report` runs in the context of the repository main branch with read/write token. It will download test results and create reports
|
2. `Test Report` runs in the context of the repository main branch with read/write token. It will download test results and create reports
|
||||||
|
|
||||||
|
The second workflow will only run after it has been merged into your default branch (typically `main` or `master`), it won't run in a PR unless after the workflow file is part of that branch.
|
||||||
|
|
||||||
**PR head branch:** *.github/workflows/ci.yml*
|
**PR head branch:** *.github/workflows/ci.yml*
|
||||||
```yaml
|
```yaml
|
||||||
name: 'CI'
|
name: 'CI'
|
||||||
@@ -67,10 +73,10 @@ jobs:
|
|||||||
build-test:
|
build-test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2 # checkout the repo
|
- uses: actions/checkout@v3 # checkout the repo
|
||||||
- run: npm ci # install packages
|
- run: npm ci # install packages
|
||||||
- run: npm test # run tests (configured to use jest-junit reporter)
|
- run: npm test # run tests (configured to use jest-junit reporter)
|
||||||
- uses: actions/upload-artifact@v2 # upload test results
|
- uses: actions/upload-artifact@v3 # upload test results
|
||||||
if: success() || failure() # run this step even if previous step failed
|
if: success() || failure() # run this step even if previous step failed
|
||||||
with:
|
with:
|
||||||
name: test-results
|
name: test-results
|
||||||
@@ -84,6 +90,10 @@ on:
|
|||||||
workflows: ['CI'] # runs after CI workflow
|
workflows: ['CI'] # runs after CI workflow
|
||||||
types:
|
types:
|
||||||
- completed
|
- completed
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
actions: read
|
||||||
|
checks: write
|
||||||
jobs:
|
jobs:
|
||||||
report:
|
report:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -114,7 +124,7 @@ jobs:
|
|||||||
# Name of the Check Run which will be created
|
# Name of the Check Run which will be created
|
||||||
name: ''
|
name: ''
|
||||||
|
|
||||||
# Coma separated list of paths to test results
|
# Comma-separated list of paths to test results
|
||||||
# Supports wildcards via [fast-glob](https://github.com/mrmlnc/fast-glob)
|
# Supports wildcards via [fast-glob](https://github.com/mrmlnc/fast-glob)
|
||||||
# All matched result files must be of the same format
|
# All matched result files must be of the same format
|
||||||
path: ''
|
path: ''
|
||||||
@@ -156,6 +166,9 @@ jobs:
|
|||||||
# Set action as failed if test report contains any failed test
|
# Set action as failed if test report contains any failed test
|
||||||
fail-on-error: 'true'
|
fail-on-error: 'true'
|
||||||
|
|
||||||
|
# Set this action as failed if no test results were found
|
||||||
|
fail-on-empty: 'true'
|
||||||
|
|
||||||
# Relative path under $GITHUB_WORKSPACE where the repository was checked out.
|
# Relative path under $GITHUB_WORKSPACE where the repository was checked out.
|
||||||
working-directory: ''
|
working-directory: ''
|
||||||
|
|
||||||
@@ -172,6 +185,8 @@ jobs:
|
|||||||
| failed | Count of failed tests |
|
| failed | Count of failed tests |
|
||||||
| skipped | Count of skipped tests |
|
| skipped | Count of skipped tests |
|
||||||
| time | Test execution time [ms] |
|
| time | Test execution time [ms] |
|
||||||
|
| url | Check run URL |
|
||||||
|
| url_html | Check run URL HTML |
|
||||||
|
|
||||||
## Supported formats
|
## Supported formats
|
||||||
|
|
||||||
@@ -256,14 +271,14 @@ Some heuristic was necessary to figure out the mapping between the line in the s
|
|||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>jest-Junit</summary>
|
<summary>jest-junit</summary>
|
||||||
|
|
||||||
[JEST](https://jestjs.io/) testing framework support requires the usage of [jest-Junit](https://github.com/jest-community/jest-Junit) reporter.
|
[JEST](https://jestjs.io/) testing framework support requires the usage of [jest-junit](https://github.com/jest-community/jest-junit) reporter.
|
||||||
It will create test results in Junit XML format which can be then processed by this action.
|
It will create test results in Junit XML format which can be then processed by this action.
|
||||||
You can use the following example configuration in `package.json`:
|
You can use the following example configuration in `package.json`:
|
||||||
```json
|
```json
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "jest --ci --reporters=default --reporters=jest-Junit"
|
"test": "jest --ci --reporters=default --reporters=jest-junit"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"jest": "^26.5.3",
|
"jest": "^26.5.3",
|
||||||
@@ -308,7 +323,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.
|
- 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.
|
- 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@v2` to upload them and inspect them manually.
|
- 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.
|
||||||
- Check Runs are created for specific commit SHA. It's not possible to specify under which workflow test report should belong if more
|
- 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.
|
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).
|
For more information, see [#67](https://github.com/dorny/test-reporter/issues/67).
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
**6** tests were completed in **4s** with **1** passed, **4** failed and **1** skipped.
|
**6** tests were completed in **4s** with **1** passed, **4** failed and **1** skipped.
|
||||||
|Test suite|Passed|Failed|Skipped|Time|
|
|Test suite|Passed|Failed|Skipped|Time|
|
||||||
|:---|---:|---:|---:|---:|
|
|:---|---:|---:|---:|---:|
|
||||||
|[test/main_test.dart](#r0s0)|1✔️|3❌||74ms|
|
|[test/main_test.dart](#r0s0)|1✅|3❌||74ms|
|
||||||
|[test/second_test.dart](#r0s1)||1❌|1✖️|51ms|
|
|[test/second_test.dart](#r0s1)||1❌|1⚪|51ms|
|
||||||
### ❌ <a id="user-content-r0s0" href="#r0s0">test/main_test.dart</a>
|
### ❌ <a id="user-content-r0s0" href="#r0s0">test/main_test.dart</a>
|
||||||
```
|
```
|
||||||
Test 1
|
Test 1
|
||||||
✔️ Passing test
|
✅ Passing test
|
||||||
Test 1 Test 1.1
|
Test 1 Test 1.1
|
||||||
❌ Failing test
|
❌ Failing test
|
||||||
Expected: <2>
|
Expected: <2>
|
||||||
@@ -24,5 +24,5 @@ Test 2
|
|||||||
```
|
```
|
||||||
❌ Timeout test
|
❌ Timeout test
|
||||||
TimeoutException after 0:00:00.000001: Test timed out after 0 seconds.
|
TimeoutException after 0:00:00.000001: Test timed out after 0 seconds.
|
||||||
✖️ Skipped test
|
⚪ Skipped test
|
||||||
```
|
```
|
||||||
@@ -3,10 +3,10 @@
|
|||||||
**11** tests were completed in **1s** with **5** passed, **5** failed and **1** skipped.
|
**11** tests were completed in **1s** with **5** passed, **5** failed and **1** skipped.
|
||||||
|Test suite|Passed|Failed|Skipped|Time|
|
|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>
|
### ❌ <a id="user-content-r0s0" href="#r0s0">DotnetTests.XUnitTests.CalculatorTests</a>
|
||||||
```
|
```
|
||||||
✔️ Custom Name
|
✅ Custom Name
|
||||||
❌ Exception_In_TargetTest
|
❌ Exception_In_TargetTest
|
||||||
System.DivideByZeroException : Attempted to divide by zero.
|
System.DivideByZeroException : Attempted to divide by zero.
|
||||||
❌ Exception_In_Test
|
❌ Exception_In_Test
|
||||||
@@ -15,17 +15,17 @@
|
|||||||
Assert.Equal() Failure
|
Assert.Equal() Failure
|
||||||
Expected: 3
|
Expected: 3
|
||||||
Actual: 2
|
Actual: 2
|
||||||
✔️ Is_Even_Number(i: 2)
|
✅ Is_Even_Number(i: 2)
|
||||||
❌ Is_Even_Number(i: 3)
|
❌ Is_Even_Number(i: 3)
|
||||||
Assert.True() Failure
|
Assert.True() Failure
|
||||||
Expected: True
|
Expected: True
|
||||||
Actual: False
|
Actual: False
|
||||||
✔️ Passing_Test
|
✅ Passing_Test
|
||||||
✔️ Should be even number(i: 2)
|
✅ Should be even number(i: 2)
|
||||||
❌ Should be even number(i: 3)
|
❌ Should be even number(i: 3)
|
||||||
Assert.True() Failure
|
Assert.True() Failure
|
||||||
Expected: True
|
Expected: True
|
||||||
Actual: False
|
Actual: False
|
||||||
✖️ Skipped_Test
|
⚪ Skipped_Test
|
||||||
✔️ Timeout_Test
|
✅ Timeout_Test
|
||||||
```
|
```
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -3,12 +3,12 @@
|
|||||||
**6** tests were completed in **1s** with **1** passed, **4** failed and **1** skipped.
|
**6** tests were completed in **1s** with **1** passed, **4** failed and **1** skipped.
|
||||||
|Test suite|Passed|Failed|Skipped|Time|
|
|Test suite|Passed|Failed|Skipped|Time|
|
||||||
|:---|---:|---:|---:|---:|
|
|:---|---:|---:|---:|---:|
|
||||||
|[__tests__\main.test.js](#r0s0)|1✔️|3❌||486ms|
|
|[__tests__\main.test.js](#r0s0)|1✅|3❌||486ms|
|
||||||
|[__tests__\second.test.js](#r0s1)||1❌|1✖️|82ms|
|
|[__tests__\second.test.js](#r0s1)||1❌|1⚪|82ms|
|
||||||
### ❌ <a id="user-content-r0s0" href="#r0s0">__tests__\main.test.js</a>
|
### ❌ <a id="user-content-r0s0" href="#r0s0">__tests__\main.test.js</a>
|
||||||
```
|
```
|
||||||
Test 1
|
Test 1
|
||||||
✔️ Passing test
|
✅ Passing test
|
||||||
Test 1 › Test 1.1
|
Test 1 › Test 1.1
|
||||||
❌ Failing test
|
❌ Failing test
|
||||||
Error: expect(received).toBeTruthy()
|
Error: expect(received).toBeTruthy()
|
||||||
@@ -22,5 +22,5 @@ Test 2
|
|||||||
```
|
```
|
||||||
❌ Timeout test
|
❌ Timeout test
|
||||||
: Timeout - Async callback was not invoked within the 1 ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 1 ms timeout specified by jest.setTimeout.Error:
|
: Timeout - Async callback was not invoked within the 1 ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 1 ms timeout specified by jest.setTimeout.Error:
|
||||||
✖️ Skipped test
|
⚪ Skipped test
|
||||||
```
|
```
|
||||||
@@ -3,430 +3,430 @@
|
|||||||
**4239** tests were completed in **166s** with **4207** passed, **2** failed and **30** skipped.
|
**4239** tests were completed in **166s** with **4207** passed, **2** failed and **30** skipped.
|
||||||
|Test suite|Passed|Failed|Skipped|Time|
|
|Test suite|Passed|Failed|Skipped|Time|
|
||||||
|:---|---:|---:|---:|---:|
|
|:---|---:|---:|---:|---:|
|
||||||
|e2e/__tests__/asyncAndCallback.test.ts|1✔️|||746ms|
|
|e2e/__tests__/asyncAndCallback.test.ts|1✅|||746ms|
|
||||||
|e2e/__tests__/asyncRegenerator.test.ts|1✔️|||4s|
|
|e2e/__tests__/asyncRegenerator.test.ts|1✅|||4s|
|
||||||
|e2e/__tests__/autoClearMocks.test.ts|2✔️|||2s|
|
|e2e/__tests__/autoClearMocks.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/autoResetMocks.test.ts|2✔️|||2s|
|
|e2e/__tests__/autoResetMocks.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/autoRestoreMocks.test.ts|2✔️|||2s|
|
|e2e/__tests__/autoRestoreMocks.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/babelPluginJestHoist.test.ts|1✔️|||6s|
|
|e2e/__tests__/babelPluginJestHoist.test.ts|1✅|||6s|
|
||||||
|e2e/__tests__/badSourceMap.test.ts|1✔️|||858ms|
|
|e2e/__tests__/badSourceMap.test.ts|1✅|||858ms|
|
||||||
|e2e/__tests__/beforeAllFiltered.ts|1✔️|||958ms|
|
|e2e/__tests__/beforeAllFiltered.ts|1✅|||958ms|
|
||||||
|e2e/__tests__/beforeEachQueue.ts|1✔️||1✖️|55ms|
|
|e2e/__tests__/beforeEachQueue.ts|1✅||1⚪|55ms|
|
||||||
|e2e/__tests__/callDoneTwice.test.ts|1✔️|||882ms|
|
|e2e/__tests__/callDoneTwice.test.ts|1✅|||882ms|
|
||||||
|e2e/__tests__/chaiAssertionLibrary.ts|1✔️|||2s|
|
|e2e/__tests__/chaiAssertionLibrary.ts|1✅|||2s|
|
||||||
|e2e/__tests__/circularInequality.test.ts|1✔️|||1s|
|
|e2e/__tests__/circularInequality.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/circusConcurrentEach.test.ts|2✔️|||2s|
|
|e2e/__tests__/circusConcurrentEach.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/circusDeclarationErrors.test.ts|1✔️|||869ms|
|
|e2e/__tests__/circusDeclarationErrors.test.ts|1✅|||869ms|
|
||||||
|e2e/__tests__/clearCache.test.ts|2✔️|||1s|
|
|e2e/__tests__/clearCache.test.ts|2✅|||1s|
|
||||||
|e2e/__tests__/cliHandlesExactFilenames.test.ts|2✔️|||1s|
|
|e2e/__tests__/cliHandlesExactFilenames.test.ts|2✅|||1s|
|
||||||
|e2e/__tests__/compareDomNodes.test.ts|1✔️|||1s|
|
|e2e/__tests__/compareDomNodes.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/config.test.ts|6✔️|||4s|
|
|e2e/__tests__/config.test.ts|6✅|||4s|
|
||||||
|e2e/__tests__/console.test.ts|7✔️|||8s|
|
|e2e/__tests__/console.test.ts|7✅|||8s|
|
||||||
|e2e/__tests__/consoleAfterTeardown.test.ts|1✔️|||1s|
|
|e2e/__tests__/consoleAfterTeardown.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/consoleLogOutputWhenRunInBand.test.ts|1✔️|||793ms|
|
|e2e/__tests__/consoleLogOutputWhenRunInBand.test.ts|1✅|||793ms|
|
||||||
|e2e/__tests__/coverageHandlebars.test.ts|1✔️|||2s|
|
|e2e/__tests__/coverageHandlebars.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/coverageRemapping.test.ts|1✔️|||13s|
|
|e2e/__tests__/coverageRemapping.test.ts|1✅|||13s|
|
||||||
|e2e/__tests__/coverageReport.test.ts|12✔️|||22s|
|
|e2e/__tests__/coverageReport.test.ts|12✅|||22s|
|
||||||
|e2e/__tests__/coverageThreshold.test.ts|5✔️|||5s|
|
|e2e/__tests__/coverageThreshold.test.ts|5✅|||5s|
|
||||||
|e2e/__tests__/coverageTransformInstrumented.test.ts|1✔️|||5s|
|
|e2e/__tests__/coverageTransformInstrumented.test.ts|1✅|||5s|
|
||||||
|e2e/__tests__/coverageWithoutTransform.test.ts|1✔️|||1s|
|
|e2e/__tests__/coverageWithoutTransform.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/createProcessObject.test.ts|1✔️|||908ms|
|
|e2e/__tests__/createProcessObject.test.ts|1✅|||908ms|
|
||||||
|e2e/__tests__/customInlineSnapshotMatchers.test.ts|1✔️|||2s|
|
|e2e/__tests__/customInlineSnapshotMatchers.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/customMatcherStackTrace.test.ts|2✔️|||2s|
|
|e2e/__tests__/customMatcherStackTrace.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/customReporters.test.ts|9✔️|||7s|
|
|e2e/__tests__/customReporters.test.ts|9✅|||7s|
|
||||||
|e2e/__tests__/customResolver.test.ts|1✔️|||826ms|
|
|e2e/__tests__/customResolver.test.ts|1✅|||826ms|
|
||||||
|e2e/__tests__/customTestSequencers.test.ts|3✔️|||3s|
|
|e2e/__tests__/customTestSequencers.test.ts|3✅|||3s|
|
||||||
|e2e/__tests__/debug.test.ts|1✔️|||899ms|
|
|e2e/__tests__/debug.test.ts|1✅|||899ms|
|
||||||
|e2e/__tests__/declarationErrors.test.ts|3✔️|||2s|
|
|e2e/__tests__/declarationErrors.test.ts|3✅|||2s|
|
||||||
|e2e/__tests__/dependencyClash.test.ts|1✔️|||833ms|
|
|e2e/__tests__/dependencyClash.test.ts|1✅|||833ms|
|
||||||
|e2e/__tests__/detectOpenHandles.ts|8✔️|||8s|
|
|e2e/__tests__/detectOpenHandles.ts|8✅|||8s|
|
||||||
|e2e/__tests__/domDiffing.test.ts|1✔️|||1s|
|
|e2e/__tests__/domDiffing.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/doneInHooks.test.ts|1✔️|||855ms|
|
|e2e/__tests__/doneInHooks.test.ts|1✅|||855ms|
|
||||||
|e2e/__tests__/dynamicRequireDependencies.ts|1✔️|||847ms|
|
|e2e/__tests__/dynamicRequireDependencies.ts|1✅|||847ms|
|
||||||
|e2e/__tests__/each.test.ts|7✔️|||5s|
|
|e2e/__tests__/each.test.ts|7✅|||5s|
|
||||||
|e2e/__tests__/emptyDescribeWithHooks.test.ts|4✔️|||3s|
|
|e2e/__tests__/emptyDescribeWithHooks.test.ts|4✅|||3s|
|
||||||
|e2e/__tests__/emptySuiteError.test.ts|1✔️|||885ms|
|
|e2e/__tests__/emptySuiteError.test.ts|1✅|||885ms|
|
||||||
|e2e/__tests__/env.test.ts|6✔️|||5s|
|
|e2e/__tests__/env.test.ts|6✅|||5s|
|
||||||
|e2e/__tests__/environmentAfterTeardown.test.ts|1✔️|||892ms|
|
|e2e/__tests__/environmentAfterTeardown.test.ts|1✅|||892ms|
|
||||||
|e2e/__tests__/errorOnDeprecated.test.ts|1✔️||24✖️|56ms|
|
|e2e/__tests__/errorOnDeprecated.test.ts|1✅||24⚪|56ms|
|
||||||
|e2e/__tests__/esmConfigFile.test.ts|3✔️|||526ms|
|
|e2e/__tests__/esmConfigFile.test.ts|3✅|||526ms|
|
||||||
|e2e/__tests__/executeTestsOnceInMpr.ts|1✔️|||976ms|
|
|e2e/__tests__/executeTestsOnceInMpr.ts|1✅|||976ms|
|
||||||
|e2e/__tests__/existentRoots.test.ts|4✔️|||627ms|
|
|e2e/__tests__/existentRoots.test.ts|4✅|||627ms|
|
||||||
|e2e/__tests__/expectAsyncMatcher.test.ts|2✔️|||3s|
|
|e2e/__tests__/expectAsyncMatcher.test.ts|2✅|||3s|
|
||||||
|e2e/__tests__/expectInVm.test.ts|1✔️|||2s|
|
|e2e/__tests__/expectInVm.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/extraGlobals.test.ts|1✔️|||1s|
|
|e2e/__tests__/extraGlobals.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/failureDetailsProperty.test.ts|1✔️|||907ms|
|
|e2e/__tests__/failureDetailsProperty.test.ts|1✅|||907ms|
|
||||||
|e2e/__tests__/failures.test.ts|7✔️|||10s|
|
|e2e/__tests__/failures.test.ts|7✅|||10s|
|
||||||
|e2e/__tests__/fakePromises.test.ts|2✔️|||2s|
|
|e2e/__tests__/fakePromises.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/fatalWorkerError.test.ts|1✔️|||3s|
|
|e2e/__tests__/fatalWorkerError.test.ts|1✅|||3s|
|
||||||
|e2e/__tests__/filter.test.ts|7✔️|||5s|
|
|e2e/__tests__/filter.test.ts|7✅|||5s|
|
||||||
|e2e/__tests__/findRelatedFiles.test.ts|5✔️|||6s|
|
|e2e/__tests__/findRelatedFiles.test.ts|5✅|||6s|
|
||||||
|e2e/__tests__/focusedTests.test.ts|1✔️|||888ms|
|
|e2e/__tests__/focusedTests.test.ts|1✅|||888ms|
|
||||||
|e2e/__tests__/forceExit.test.ts|1✔️|||2s|
|
|e2e/__tests__/forceExit.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/generatorMock.test.ts|1✔️|||1s|
|
|e2e/__tests__/generatorMock.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/global-mutation.test.ts|1✔️|||40ms|
|
|e2e/__tests__/global-mutation.test.ts|1✅|||40ms|
|
||||||
|e2e/__tests__/global.test.ts|1✔️|||31ms|
|
|e2e/__tests__/global.test.ts|1✅|||31ms|
|
||||||
|e2e/__tests__/globals.test.ts|10✔️|||8s|
|
|e2e/__tests__/globals.test.ts|10✅|||8s|
|
||||||
|e2e/__tests__/globalSetup.test.ts|10✔️|||14s|
|
|e2e/__tests__/globalSetup.test.ts|10✅|||14s|
|
||||||
|e2e/__tests__/globalTeardown.test.ts|7✔️|||12s|
|
|e2e/__tests__/globalTeardown.test.ts|7✅|||12s|
|
||||||
|e2e/__tests__/hasteMapMockChanged.test.ts|1✔️|||379ms|
|
|e2e/__tests__/hasteMapMockChanged.test.ts|1✅|||379ms|
|
||||||
|e2e/__tests__/hasteMapSha1.test.ts|1✔️|||298ms|
|
|e2e/__tests__/hasteMapSha1.test.ts|1✅|||298ms|
|
||||||
|e2e/__tests__/hasteMapSize.test.ts|2✔️|||397ms|
|
|e2e/__tests__/hasteMapSize.test.ts|2✅|||397ms|
|
||||||
|e2e/__tests__/importedGlobals.test.ts|1✔️|||1s|
|
|e2e/__tests__/importedGlobals.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/injectGlobals.test.ts|2✔️|||2s|
|
|e2e/__tests__/injectGlobals.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/jasmineAsync.test.ts|15✔️|||28s|
|
|e2e/__tests__/jasmineAsync.test.ts|15✅|||28s|
|
||||||
|e2e/__tests__/jasmineAsyncWithPendingDuringTest.ts|1✔️||1✖️|72ms|
|
|e2e/__tests__/jasmineAsyncWithPendingDuringTest.ts|1✅||1⚪|72ms|
|
||||||
|e2e/__tests__/jest.config.js.test.ts|3✔️|||2s|
|
|e2e/__tests__/jest.config.js.test.ts|3✅|||2s|
|
||||||
|e2e/__tests__/jest.config.ts.test.ts|5✔️|||14s|
|
|e2e/__tests__/jest.config.ts.test.ts|5✅|||14s|
|
||||||
|[e2e/__tests__/jestChangedFiles.test.ts](#r0s75)|9✔️|1❌||9s|
|
|[e2e/__tests__/jestChangedFiles.test.ts](#r0s75)|9✅|1❌||9s|
|
||||||
|e2e/__tests__/jestEnvironmentJsdom.test.ts|1✔️|||2s|
|
|e2e/__tests__/jestEnvironmentJsdom.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/jestRequireActual.test.ts|1✔️|||2s|
|
|e2e/__tests__/jestRequireActual.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/jestRequireMock.test.ts|1✔️|||2s|
|
|e2e/__tests__/jestRequireMock.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/json.test.ts|2✔️|||29ms|
|
|e2e/__tests__/json.test.ts|2✅|||29ms|
|
||||||
|e2e/__tests__/jsonReporter.test.ts|2✔️|||2s|
|
|e2e/__tests__/jsonReporter.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/lifecycles.ts|1✔️|||861ms|
|
|e2e/__tests__/lifecycles.ts|1✅|||861ms|
|
||||||
|e2e/__tests__/listTests.test.ts|2✔️|||945ms|
|
|e2e/__tests__/listTests.test.ts|2✅|||945ms|
|
||||||
|e2e/__tests__/locationInResults.test.ts|2✔️|||2s|
|
|e2e/__tests__/locationInResults.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/logHeapUsage.test.ts|1✔️|||884ms|
|
|e2e/__tests__/logHeapUsage.test.ts|1✅|||884ms|
|
||||||
|e2e/__tests__/mockNames.test.ts|8✔️|||7s|
|
|e2e/__tests__/mockNames.test.ts|8✅|||7s|
|
||||||
|e2e/__tests__/modernFakeTimers.test.ts|2✔️|||2s|
|
|e2e/__tests__/modernFakeTimers.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/moduleNameMapper.test.ts|5✔️|||5s|
|
|e2e/__tests__/moduleNameMapper.test.ts|5✅|||5s|
|
||||||
|e2e/__tests__/moduleParentNullInTest.ts|1✔️|||886ms|
|
|e2e/__tests__/moduleParentNullInTest.ts|1✅|||886ms|
|
||||||
|e2e/__tests__/multiProjectRunner.test.ts|14✔️|||16s|
|
|e2e/__tests__/multiProjectRunner.test.ts|14✅|||16s|
|
||||||
|e2e/__tests__/nativeAsyncMock.test.ts|1✔️|||55ms|
|
|e2e/__tests__/nativeAsyncMock.test.ts|1✅|||55ms|
|
||||||
|e2e/__tests__/nativeEsm.test.ts|2✔️||1✖️|905ms|
|
|e2e/__tests__/nativeEsm.test.ts|2✅||1⚪|905ms|
|
||||||
|e2e/__tests__/nativeEsmTypescript.test.ts|1✔️|||956ms|
|
|e2e/__tests__/nativeEsmTypescript.test.ts|1✅|||956ms|
|
||||||
|e2e/__tests__/nestedEventLoop.test.ts|1✔️|||1s|
|
|e2e/__tests__/nestedEventLoop.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/nestedTestDefinitions.test.ts|4✔️|||5s|
|
|e2e/__tests__/nestedTestDefinitions.test.ts|4✅|||5s|
|
||||||
|e2e/__tests__/nodePath.test.ts|1✔️|||866ms|
|
|e2e/__tests__/nodePath.test.ts|1✅|||866ms|
|
||||||
|e2e/__tests__/noTestFound.test.ts|2✔️|||1s|
|
|e2e/__tests__/noTestFound.test.ts|2✅|||1s|
|
||||||
|e2e/__tests__/noTestsFound.test.ts|5✔️|||3s|
|
|e2e/__tests__/noTestsFound.test.ts|5✅|||3s|
|
||||||
|[e2e/__tests__/onlyChanged.test.ts](#r0s98)|8✔️|1❌||22s|
|
|[e2e/__tests__/onlyChanged.test.ts](#r0s98)|8✅|1❌||22s|
|
||||||
|e2e/__tests__/onlyFailuresNonWatch.test.ts|1✔️|||3s|
|
|e2e/__tests__/onlyFailuresNonWatch.test.ts|1✅|||3s|
|
||||||
|e2e/__tests__/overrideGlobals.test.ts|2✔️|||2s|
|
|e2e/__tests__/overrideGlobals.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/pnp.test.ts|1✔️|||3s|
|
|e2e/__tests__/pnp.test.ts|1✅|||3s|
|
||||||
|e2e/__tests__/presets.test.ts|2✔️|||2s|
|
|e2e/__tests__/presets.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/processExit.test.ts|1✔️|||1s|
|
|e2e/__tests__/processExit.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/promiseReject.test.ts|1✔️|||967ms|
|
|e2e/__tests__/promiseReject.test.ts|1✅|||967ms|
|
||||||
|e2e/__tests__/regexCharInPath.test.ts|1✔️|||962ms|
|
|e2e/__tests__/regexCharInPath.test.ts|1✅|||962ms|
|
||||||
|e2e/__tests__/requireAfterTeardown.test.ts|1✔️|||921ms|
|
|e2e/__tests__/requireAfterTeardown.test.ts|1✅|||921ms|
|
||||||
|e2e/__tests__/requireMain.test.ts|1✔️|||1s|
|
|e2e/__tests__/requireMain.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/requireMainAfterCreateRequire.test.ts|1✔️|||966ms|
|
|e2e/__tests__/requireMainAfterCreateRequire.test.ts|1✅|||966ms|
|
||||||
|e2e/__tests__/requireMainIsolateModules.test.ts|1✔️|||976ms|
|
|e2e/__tests__/requireMainIsolateModules.test.ts|1✅|||976ms|
|
||||||
|e2e/__tests__/requireMainResetModules.test.ts|2✔️|||2s|
|
|e2e/__tests__/requireMainResetModules.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/requireV8Module.test.ts|1✔️|||30ms|
|
|e2e/__tests__/requireV8Module.test.ts|1✅|||30ms|
|
||||||
|e2e/__tests__/resetModules.test.ts|1✔️|||926ms|
|
|e2e/__tests__/resetModules.test.ts|1✅|||926ms|
|
||||||
|e2e/__tests__/resolve.test.ts|1✔️|||2s|
|
|e2e/__tests__/resolve.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/resolveGetPaths.test.ts|1✔️|||1s|
|
|e2e/__tests__/resolveGetPaths.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/resolveNodeModule.test.ts|1✔️|||943ms|
|
|e2e/__tests__/resolveNodeModule.test.ts|1✅|||943ms|
|
||||||
|e2e/__tests__/resolveNoFileExtensions.test.ts|2✔️|||1s|
|
|e2e/__tests__/resolveNoFileExtensions.test.ts|2✅|||1s|
|
||||||
|e2e/__tests__/resolveWithPaths.test.ts|1✔️|||1s|
|
|e2e/__tests__/resolveWithPaths.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/runProgrammatically.test.ts|2✔️|||575ms|
|
|e2e/__tests__/runProgrammatically.test.ts|2✅|||575ms|
|
||||||
|e2e/__tests__/runTestsByPath.test.ts|1✔️|||2s|
|
|e2e/__tests__/runTestsByPath.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/runtimeInternalModuleRegistry.test.ts|1✔️|||1s|
|
|e2e/__tests__/runtimeInternalModuleRegistry.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/selectProjects.test.ts|18✔️|||5s|
|
|e2e/__tests__/selectProjects.test.ts|18✅|||5s|
|
||||||
|e2e/__tests__/setImmediate.test.ts|1✔️|||904ms|
|
|e2e/__tests__/setImmediate.test.ts|1✅|||904ms|
|
||||||
|e2e/__tests__/setupFilesAfterEnvConfig.test.ts|2✔️|||2s|
|
|e2e/__tests__/setupFilesAfterEnvConfig.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/showConfig.test.ts|1✔️|||195ms|
|
|e2e/__tests__/showConfig.test.ts|1✅|||195ms|
|
||||||
|e2e/__tests__/skipBeforeAfterAll.test.ts|1✔️|||1s|
|
|e2e/__tests__/skipBeforeAfterAll.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/snapshot-unknown.test.ts|1✔️|||838ms|
|
|e2e/__tests__/snapshot-unknown.test.ts|1✅|||838ms|
|
||||||
|e2e/__tests__/snapshot.test.ts|9✔️|||14s|
|
|e2e/__tests__/snapshot.test.ts|9✅|||14s|
|
||||||
|e2e/__tests__/snapshotMockFs.test.ts|1✔️|||883ms|
|
|e2e/__tests__/snapshotMockFs.test.ts|1✅|||883ms|
|
||||||
|e2e/__tests__/snapshotResolver.test.ts|1✔️|||823ms|
|
|e2e/__tests__/snapshotResolver.test.ts|1✅|||823ms|
|
||||||
|e2e/__tests__/snapshotSerializers.test.ts|2✔️|||2s|
|
|e2e/__tests__/snapshotSerializers.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/stackTrace.test.ts|7✔️|||5s|
|
|e2e/__tests__/stackTrace.test.ts|7✅|||5s|
|
||||||
|e2e/__tests__/stackTraceNoCaptureStackTrace.test.ts|1✔️|||899ms|
|
|e2e/__tests__/stackTraceNoCaptureStackTrace.test.ts|1✅|||899ms|
|
||||||
|e2e/__tests__/stackTraceSourceMaps.test.ts|1✔️|||2s|
|
|e2e/__tests__/stackTraceSourceMaps.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/stackTraceSourceMapsWithCoverage.test.ts|1✔️|||2s|
|
|e2e/__tests__/stackTraceSourceMapsWithCoverage.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/supportsDashedArgs.ts|2✔️|||968ms|
|
|e2e/__tests__/supportsDashedArgs.ts|2✅|||968ms|
|
||||||
|e2e/__tests__/symbol.test.ts|1✔️|||49ms|
|
|e2e/__tests__/symbol.test.ts|1✅|||49ms|
|
||||||
|e2e/__tests__/testEnvironment.test.ts|1✔️|||2s|
|
|e2e/__tests__/testEnvironment.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/testEnvironmentAsync.test.ts|1✔️|||1s|
|
|e2e/__tests__/testEnvironmentAsync.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/testEnvironmentCircus.test.ts|1✔️|||2s|
|
|e2e/__tests__/testEnvironmentCircus.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/testEnvironmentCircusAsync.test.ts|1✔️|||2s|
|
|e2e/__tests__/testEnvironmentCircusAsync.test.ts|1✅|||2s|
|
||||||
|e2e/__tests__/testFailureExitCode.test.ts|2✔️|||4s|
|
|e2e/__tests__/testFailureExitCode.test.ts|2✅|||4s|
|
||||||
|e2e/__tests__/testInRoot.test.ts|1✔️|||1s|
|
|e2e/__tests__/testInRoot.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/testNamePattern.test.ts|1✔️|||859ms|
|
|e2e/__tests__/testNamePattern.test.ts|1✅|||859ms|
|
||||||
|e2e/__tests__/testNamePatternSkipped.test.ts|1✔️|||991ms|
|
|e2e/__tests__/testNamePatternSkipped.test.ts|1✅|||991ms|
|
||||||
|e2e/__tests__/testPathPatternReporterMessage.test.ts|1✔️|||3s|
|
|e2e/__tests__/testPathPatternReporterMessage.test.ts|1✅|||3s|
|
||||||
|e2e/__tests__/testResultsProcessor.test.ts|1✔️|||910ms|
|
|e2e/__tests__/testResultsProcessor.test.ts|1✅|||910ms|
|
||||||
|e2e/__tests__/testRetries.test.ts|4✔️|||3s|
|
|e2e/__tests__/testRetries.test.ts|4✅|||3s|
|
||||||
|e2e/__tests__/testTodo.test.ts|5✔️|||4s|
|
|e2e/__tests__/testTodo.test.ts|5✅|||4s|
|
||||||
|e2e/__tests__/timeouts.test.ts|4✔️|||4s|
|
|e2e/__tests__/timeouts.test.ts|4✅|||4s|
|
||||||
|e2e/__tests__/timeoutsLegacy.test.ts|1✔️||3✖️|71ms|
|
|e2e/__tests__/timeoutsLegacy.test.ts|1✅||3⚪|71ms|
|
||||||
|e2e/__tests__/timerResetMocks.test.ts|2✔️|||2s|
|
|e2e/__tests__/timerResetMocks.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/timerUseRealTimers.test.ts|1✔️|||1s|
|
|e2e/__tests__/timerUseRealTimers.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/toMatchInlineSnapshot.test.ts|12✔️|||24s|
|
|e2e/__tests__/toMatchInlineSnapshot.test.ts|12✅|||24s|
|
||||||
|e2e/__tests__/toMatchInlineSnapshotWithRetries.test.ts|3✔️|||5s|
|
|e2e/__tests__/toMatchInlineSnapshotWithRetries.test.ts|3✅|||5s|
|
||||||
|e2e/__tests__/toMatchSnapshot.test.ts|9✔️|||17s|
|
|e2e/__tests__/toMatchSnapshot.test.ts|9✅|||17s|
|
||||||
|e2e/__tests__/toMatchSnapshotWithRetries.test.ts|2✔️|||4s|
|
|e2e/__tests__/toMatchSnapshotWithRetries.test.ts|2✅|||4s|
|
||||||
|e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts|3✔️|||4s|
|
|e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts|3✅|||4s|
|
||||||
|e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts|4✔️|||4s|
|
|e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts|4✅|||4s|
|
||||||
|e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts|5✔️|||4s|
|
|e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts|5✅|||4s|
|
||||||
|e2e/__tests__/transform.test.ts|16✔️|||27s|
|
|e2e/__tests__/transform.test.ts|16✅|||27s|
|
||||||
|e2e/__tests__/transformLinkedModules.test.ts|1✔️|||783ms|
|
|e2e/__tests__/transformLinkedModules.test.ts|1✅|||783ms|
|
||||||
|e2e/__tests__/typescriptCoverage.test.ts|1✔️|||3s|
|
|e2e/__tests__/typescriptCoverage.test.ts|1✅|||3s|
|
||||||
|e2e/__tests__/unexpectedToken.test.ts|3✔️|||3s|
|
|e2e/__tests__/unexpectedToken.test.ts|3✅|||3s|
|
||||||
|e2e/__tests__/useStderr.test.ts|1✔️|||1s|
|
|e2e/__tests__/useStderr.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/v8Coverage.test.ts|2✔️|||2s|
|
|e2e/__tests__/v8Coverage.test.ts|2✅|||2s|
|
||||||
|e2e/__tests__/verbose.test.ts|1✔️|||683ms|
|
|e2e/__tests__/verbose.test.ts|1✅|||683ms|
|
||||||
|e2e/__tests__/version.test.ts|1✔️|||138ms|
|
|e2e/__tests__/version.test.ts|1✅|||138ms|
|
||||||
|e2e/__tests__/watchModeNoAccess.test.ts|1✔️|||4s|
|
|e2e/__tests__/watchModeNoAccess.test.ts|1✅|||4s|
|
||||||
|e2e/__tests__/watchModeOnlyFailed.test.ts|1✔️|||1s|
|
|e2e/__tests__/watchModeOnlyFailed.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/watchModePatterns.test.ts|2✔️|||4s|
|
|e2e/__tests__/watchModePatterns.test.ts|2✅|||4s|
|
||||||
|e2e/__tests__/watchModeUpdateSnapshot.test.ts|1✔️|||1s|
|
|e2e/__tests__/watchModeUpdateSnapshot.test.ts|1✅|||1s|
|
||||||
|e2e/__tests__/workerForceExit.test.ts|2✔️|||5s|
|
|e2e/__tests__/workerForceExit.test.ts|2✅|||5s|
|
||||||
|e2e/__tests__/wrongEnv.test.ts|5✔️|||4s|
|
|e2e/__tests__/wrongEnv.test.ts|5✅|||4s|
|
||||||
|e2e/custom-test-sequencer/a.test.js|1✔️|||29ms|
|
|e2e/custom-test-sequencer/a.test.js|1✅|||29ms|
|
||||||
|e2e/custom-test-sequencer/b.test.js|1✔️|||21ms|
|
|e2e/custom-test-sequencer/b.test.js|1✅|||21ms|
|
||||||
|e2e/custom-test-sequencer/c.test.js|1✔️|||42ms|
|
|e2e/custom-test-sequencer/c.test.js|1✅|||42ms|
|
||||||
|e2e/custom-test-sequencer/d.test.js|1✔️|||21ms|
|
|e2e/custom-test-sequencer/d.test.js|1✅|||21ms|
|
||||||
|e2e/custom-test-sequencer/e.test.js|1✔️|||27ms|
|
|e2e/custom-test-sequencer/e.test.js|1✅|||27ms|
|
||||||
|e2e/test-in-root/spec.js|1✔️|||19ms|
|
|e2e/test-in-root/spec.js|1✅|||19ms|
|
||||||
|e2e/test-in-root/test.js|1✔️|||37ms|
|
|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/after-reset-all-mocks/timerAndMock.test.js|2✅|||30ms|
|
||||||
|e2e/timer-reset-mocks/with-reset-mocks/timerWithMock.test.js|1✔️|||34ms|
|
|e2e/timer-reset-mocks/with-reset-mocks/timerWithMock.test.js|1✅|||34ms|
|
||||||
|e2e/v8-coverage/empty-sourcemap/test.ts|1✔️|||31ms|
|
|e2e/v8-coverage/empty-sourcemap/test.ts|1✅|||31ms|
|
||||||
|examples/angular/app.component.spec.ts|3✔️|||654ms|
|
|examples/angular/app.component.spec.ts|3✅|||654ms|
|
||||||
|examples/angular/shared/data.service.spec.ts|2✔️|||431ms|
|
|examples/angular/shared/data.service.spec.ts|2✅|||431ms|
|
||||||
|examples/angular/shared/sub.service.spec.ts|1✔️|||109ms|
|
|examples/angular/shared/sub.service.spec.ts|1✅|||109ms|
|
||||||
|examples/async/__tests__/user.test.js|8✔️|||96ms|
|
|examples/async/__tests__/user.test.js|8✅|||96ms|
|
||||||
|examples/automatic-mocks/__tests__/automock.test.js|2✔️|||74ms|
|
|examples/automatic-mocks/__tests__/automock.test.js|2✅|||74ms|
|
||||||
|examples/automatic-mocks/__tests__/createMockFromModule.test.js|2✔️|||115ms|
|
|examples/automatic-mocks/__tests__/createMockFromModule.test.js|2✅|||115ms|
|
||||||
|examples/automatic-mocks/__tests__/disableAutomocking.test.js|1✔️|||24ms|
|
|examples/automatic-mocks/__tests__/disableAutomocking.test.js|1✅|||24ms|
|
||||||
|examples/enzyme/__tests__/CheckboxWithLabel-test.js|1✔️|||434ms|
|
|examples/enzyme/__tests__/CheckboxWithLabel-test.js|1✅|||434ms|
|
||||||
|examples/getting-started/sum.test.js|1✔️|||78ms|
|
|examples/getting-started/sum.test.js|1✅|||78ms|
|
||||||
|examples/jquery/__tests__/display_user.test.js|1✔️|||196ms|
|
|examples/jquery/__tests__/display_user.test.js|1✅|||196ms|
|
||||||
|examples/jquery/__tests__/fetch_current_user.test.js|2✔️|||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__/file_summarizer.test.js|1✅|||87ms|
|
||||||
|examples/manual-mocks/__tests__/lodashMocking.test.js|1✔️|||109ms|
|
|examples/manual-mocks/__tests__/lodashMocking.test.js|1✅|||109ms|
|
||||||
|examples/manual-mocks/__tests__/user.test.js|1✔️|||41ms|
|
|examples/manual-mocks/__tests__/user.test.js|1✅|||41ms|
|
||||||
|examples/manual-mocks/__tests__/userMocked.test.js|1✔️|||105ms|
|
|examples/manual-mocks/__tests__/userMocked.test.js|1✅|||105ms|
|
||||||
|examples/module-mock/__tests__/full_mock.js|1✔️|||60ms|
|
|examples/module-mock/__tests__/full_mock.js|1✅|||60ms|
|
||||||
|examples/module-mock/__tests__/mock_per_test.js|2✔️|||116ms|
|
|examples/module-mock/__tests__/mock_per_test.js|2✅|||116ms|
|
||||||
|examples/module-mock/__tests__/partial_mock.js|1✔️|||215ms|
|
|examples/module-mock/__tests__/partial_mock.js|1✅|||215ms|
|
||||||
|examples/mongodb/__test__/db.test.js|1✔️|||236ms|
|
|examples/mongodb/__test__/db.test.js|1✅|||236ms|
|
||||||
|examples/react-native/__tests__/intro.test.js|4✔️|||9s|
|
|examples/react-native/__tests__/intro.test.js|4✅|||9s|
|
||||||
|examples/react-testing-library/__tests__/CheckboxWithLabel-test.js|1✔️|||469ms|
|
|examples/react-testing-library/__tests__/CheckboxWithLabel-test.js|1✅|||469ms|
|
||||||
|examples/react/__tests__/CheckboxWithLabel-test.js|1✔️|||256ms|
|
|examples/react/__tests__/CheckboxWithLabel-test.js|1✅|||256ms|
|
||||||
|examples/snapshot/__tests__/clock.react.test.js|1✔️|||62ms|
|
|examples/snapshot/__tests__/clock.react.test.js|1✅|||62ms|
|
||||||
|examples/snapshot/__tests__/link.react.test.js|4✔️|||181ms|
|
|examples/snapshot/__tests__/link.react.test.js|4✅|||181ms|
|
||||||
|examples/timer/__tests__/infinite_timer_game.test.js|1✔️|||94ms|
|
|examples/timer/__tests__/infinite_timer_game.test.js|1✅|||94ms|
|
||||||
|examples/timer/__tests__/timer_game.test.js|3✔️|||74ms|
|
|examples/timer/__tests__/timer_game.test.js|3✅|||74ms|
|
||||||
|examples/typescript/__tests__/calc.test.ts|6✔️|||276ms|
|
|examples/typescript/__tests__/calc.test.ts|6✅|||276ms|
|
||||||
|examples/typescript/__tests__/CheckboxWithLabel-test.tsx|1✔️|||227ms|
|
|examples/typescript/__tests__/CheckboxWithLabel-test.tsx|1✅|||227ms|
|
||||||
|examples/typescript/__tests__/sub-test.ts|1✔️|||43ms|
|
|examples/typescript/__tests__/sub-test.ts|1✅|||43ms|
|
||||||
|examples/typescript/__tests__/sum-test.ts|2✔️|||69ms|
|
|examples/typescript/__tests__/sum-test.ts|2✅|||69ms|
|
||||||
|examples/typescript/__tests__/sum.test.js|2✔️|||100ms|
|
|examples/typescript/__tests__/sum.test.js|2✅|||100ms|
|
||||||
|packages/babel-jest/src/__tests__/index.ts|6✔️|||371ms|
|
|packages/babel-jest/src/__tests__/index.ts|6✅|||371ms|
|
||||||
|packages/babel-plugin-jest-hoist/src/__tests__/hoistPlugin.test.ts|4✔️|||347ms|
|
|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.property.test.ts|7✅|||357ms|
|
||||||
|packages/diff-sequences/src/__tests__/index.test.ts|48✔️|||195ms|
|
|packages/diff-sequences/src/__tests__/index.test.ts|48✅|||195ms|
|
||||||
|packages/expect/src/__tests__/assertionCounts.test.ts|6✔️|||60ms|
|
|packages/expect/src/__tests__/assertionCounts.test.ts|6✅|||60ms|
|
||||||
|packages/expect/src/__tests__/asymmetricMatchers.test.ts|38✔️|||207ms|
|
|packages/expect/src/__tests__/asymmetricMatchers.test.ts|38✅|||207ms|
|
||||||
|packages/expect/src/__tests__/extend.test.ts|10✔️|||99ms|
|
|packages/expect/src/__tests__/extend.test.ts|10✅|||99ms|
|
||||||
|packages/expect/src/__tests__/isError.test.ts|4✔️|||43ms|
|
|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-toContain.property.test.ts|2✅|||236ms|
|
||||||
|packages/expect/src/__tests__/matchers-toContainEqual.property.test.ts|2✔️|||287ms|
|
|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-toEqual.property.test.ts|2✅|||1s|
|
||||||
|packages/expect/src/__tests__/matchers-toStrictEqual.property.test.ts|3✔️|||394ms|
|
|packages/expect/src/__tests__/matchers-toStrictEqual.property.test.ts|3✅|||394ms|
|
||||||
|packages/expect/src/__tests__/matchers.test.js|592✔️|||862ms|
|
|packages/expect/src/__tests__/matchers.test.js|592✅|||862ms|
|
||||||
|packages/expect/src/__tests__/spyMatchers.test.ts|248✔️|||395ms|
|
|packages/expect/src/__tests__/spyMatchers.test.ts|248✅|||395ms|
|
||||||
|packages/expect/src/__tests__/stacktrace.test.ts|3✔️|||69ms|
|
|packages/expect/src/__tests__/stacktrace.test.ts|3✅|||69ms|
|
||||||
|packages/expect/src/__tests__/symbolInObjects.test.ts|3✔️|||33ms|
|
|packages/expect/src/__tests__/symbolInObjects.test.ts|3✅|||33ms|
|
||||||
|packages/expect/src/__tests__/toEqual-dom.test.ts|12✔️|||99ms|
|
|packages/expect/src/__tests__/toEqual-dom.test.ts|12✅|||99ms|
|
||||||
|packages/expect/src/__tests__/toThrowMatchers.test.ts|98✔️|||257ms|
|
|packages/expect/src/__tests__/toThrowMatchers.test.ts|98✅|||257ms|
|
||||||
|packages/expect/src/__tests__/utils.test.ts|41✔️|||147ms|
|
|packages/expect/src/__tests__/utils.test.ts|41✅|||147ms|
|
||||||
|packages/jest-circus/src/__tests__/afterAll.test.ts|6✔️|||6s|
|
|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__/baseTest.test.ts|2✅|||3s|
|
||||||
|packages/jest-circus/src/__tests__/circusItTestError.test.ts|8✔️|||300ms|
|
|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__/circusItTodoTestError.test.ts|3✅|||81ms|
|
||||||
|packages/jest-circus/src/__tests__/hooks.test.ts|3✔️|||4s|
|
|packages/jest-circus/src/__tests__/hooks.test.ts|3✅|||4s|
|
||||||
|packages/jest-circus/src/__tests__/hooksError.test.ts|32✔️|||127ms|
|
|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/__tests__/cli/args.test.ts|17✅|||345ms|
|
||||||
|packages/jest-cli/src/init/__tests__/init.test.js|24✔️|||119ms|
|
|packages/jest-cli/src/init/__tests__/init.test.js|24✅|||119ms|
|
||||||
|packages/jest-cli/src/init/__tests__/modifyPackageJson.test.ts|4✔️|||30ms|
|
|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__/Defaults.test.ts|1✅|||672ms|
|
||||||
|packages/jest-config/src/__tests__/getMaxWorkers.test.ts|7✔️|||67ms|
|
|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__/normalize.test.js|118✅|||798ms|
|
||||||
|packages/jest-config/src/__tests__/readConfig.test.ts|1✔️|||76ms|
|
|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__/readConfigs.test.ts|3✅|||135ms|
|
||||||
|packages/jest-config/src/__tests__/resolveConfigPath.test.ts|10✔️|||183ms|
|
|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__/setFromArgv.test.ts|4✅|||53ms|
|
||||||
|packages/jest-config/src/__tests__/validatePattern.test.ts|4✔️|||52ms|
|
|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__/bufferedConsole.test.ts|20✅|||171ms|
|
||||||
|packages/jest-console/src/__tests__/CustomConsole.test.ts|23✔️|||115ms|
|
|packages/jest-console/src/__tests__/CustomConsole.test.ts|23✅|||115ms|
|
||||||
|packages/jest-console/src/__tests__/getConsoleOutput.test.ts|12✔️|||56ms|
|
|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__/FailedTestsCache.test.js|1✅|||25ms|
|
||||||
|packages/jest-core/src/__tests__/getNoTestsFoundMessage.test.js|5✔️|||61ms|
|
|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__/globals.test.ts|1✅|||22ms|
|
||||||
|packages/jest-core/src/__tests__/runJest.test.js|2✔️|||261ms|
|
|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__/SearchSource.test.ts|27✅|||3s|
|
||||||
|packages/jest-core/src/__tests__/SnapshotInteractiveMode.test.js|13✔️|||89ms|
|
|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__/TestScheduler.test.js|8✅|||520ms|
|
||||||
|packages/jest-core/src/__tests__/testSchedulerHelper.test.js|12✔️|||48ms|
|
|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__/watch.test.js|80✅|||7s|
|
||||||
|packages/jest-core/src/__tests__/watchFileChanges.test.ts|1✔️|||2s|
|
|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__/watchFilenamePatternMode.test.js|2✅|||165ms|
|
||||||
|packages/jest-core/src/__tests__/watchTestNamePatternMode.test.js|1✔️|||246ms|
|
|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__/isValidPath.test.ts|3✅|||166ms|
|
||||||
|packages/jest-core/src/lib/__tests__/logDebugMessages.test.ts|3✔️|||48ms|
|
|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-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__/diff.test.ts|107✅|||625ms|
|
||||||
|packages/jest-diff/src/__tests__/diffStringsRaw.test.ts|2✔️|||55ms|
|
|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__/getAlignedDiffs.test.ts|24✅|||72ms|
|
||||||
|packages/jest-diff/src/__tests__/joinAlignedDiffs.test.ts|6✔️|||44ms|
|
|packages/jest-diff/src/__tests__/joinAlignedDiffs.test.ts|6✅|||44ms|
|
||||||
|packages/jest-docblock/src/__tests__/index.test.ts|36✔️|||177ms|
|
|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__/array.test.ts|159✅|||192ms|
|
||||||
|packages/jest-each/src/__tests__/index.test.ts|10✔️|||44ms|
|
|packages/jest-each/src/__tests__/index.test.ts|10✅|||44ms|
|
||||||
|packages/jest-each/src/__tests__/template.test.ts|242✔️|||483ms|
|
|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-jsdom/src/__tests__/jsdom_environment.test.ts|2✅|||783ms|
|
||||||
|packages/jest-environment-node/src/__tests__/node_environment.test.ts|6✔️|||184ms|
|
|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__/legacyFakeTimers.test.ts|50✅|||302ms|
|
||||||
|packages/jest-fake-timers/src/__tests__/modernFakeTimers.test.ts|40✔️|||317ms|
|
|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__/getType.test.ts|14✅|||45ms|
|
||||||
|packages/jest-get-type/src/__tests__/isPrimitive.test.ts|18✔️|||36ms|
|
|packages/jest-get-type/src/__tests__/isPrimitive.test.ts|18✅|||36ms|
|
||||||
|packages/jest-globals/src/__tests__/index.ts|1✔️|||533ms|
|
|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__/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__/includes_dotfiles.test.ts|1✅|||337ms|
|
||||||
|packages/jest-haste-map/src/__tests__/index.test.js|44✔️|||1s|
|
|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/__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__/node.test.js|10✅|||170ms|
|
||||||
|packages/jest-haste-map/src/crawlers/__tests__/watchman.test.js|8✔️|||153ms|
|
|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__/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__/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__/getPlatformExtension.test.js|1✅|||35ms|
|
||||||
|packages/jest-haste-map/src/lib/__tests__/isRegExpSupported.test.js|2✔️|||31ms|
|
|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-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__/concurrent.test.ts|3✅|||24ms|
|
||||||
|packages/jest-jasmine2/src/__tests__/expectationResultFactory.test.ts|7✔️|||70ms|
|
|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__/hooksError.test.ts|32✅|||51ms|
|
||||||
|packages/jest-jasmine2/src/__tests__/iterators.test.ts|4✔️|||43ms|
|
|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__/itTestError.test.ts|6✅|||32ms|
|
||||||
|packages/jest-jasmine2/src/__tests__/itToTestAlias.test.ts|1✔️|||23ms|
|
|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__/pTimeout.test.ts|3✅|||44ms|
|
||||||
|packages/jest-jasmine2/src/__tests__/queueRunner.test.ts|6✔️|||93ms|
|
|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__/reporter.test.ts|1✅|||107ms|
|
||||||
|packages/jest-jasmine2/src/__tests__/Suite.test.ts|1✔️|||84ms|
|
|packages/jest-jasmine2/src/__tests__/Suite.test.ts|1✅|||84ms|
|
||||||
|packages/jest-jasmine2/src/__tests__/todoError.test.ts|3✔️|||27ms|
|
|packages/jest-jasmine2/src/__tests__/todoError.test.ts|3✅|||27ms|
|
||||||
|packages/jest-leak-detector/src/__tests__/index.test.ts|6✔️|||986ms|
|
|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__/deepCyclicCopyReplaceable.test.ts|11✅|||49ms|
|
||||||
|packages/jest-matcher-utils/src/__tests__/deepCyclicCopyReplaceableDom.test.ts|2✔️|||48ms|
|
|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__/index.test.ts|48✅|||391ms|
|
||||||
|packages/jest-matcher-utils/src/__tests__/printDiffOrStringify.test.ts|21✔️|||114ms|
|
|packages/jest-matcher-utils/src/__tests__/printDiffOrStringify.test.ts|21✅|||114ms|
|
||||||
|packages/jest-matcher-utils/src/__tests__/Replaceable.test.ts|17✔️|||111ms|
|
|packages/jest-matcher-utils/src/__tests__/Replaceable.test.ts|17✅|||111ms|
|
||||||
|packages/jest-message-util/src/__tests__/messages.test.ts|11✔️|||205ms|
|
|packages/jest-message-util/src/__tests__/messages.test.ts|11✅|||205ms|
|
||||||
|packages/jest-mock/src/__tests__/index.test.ts|84✔️|||509ms|
|
|packages/jest-mock/src/__tests__/index.test.ts|84✅|||509ms|
|
||||||
|packages/jest-regex-util/src/__tests__/index.test.ts|8✔️|||56ms|
|
|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__/jest_repl.test.js|1✅|||1s|
|
||||||
|packages/jest-repl/src/__tests__/runtime_cli.test.js|4✔️|||4s|
|
|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__/CoverageReporter.test.js|12✅|||397ms|
|
||||||
|packages/jest-reporters/src/__tests__/CoverageWorker.test.js|2✔️|||199ms|
|
|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__/DefaultReporter.test.js|2✅|||148ms|
|
||||||
|packages/jest-reporters/src/__tests__/generateEmptyCoverage.test.js|3✔️|||1s|
|
|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__/getResultHeader.test.js|4✅|||30ms|
|
||||||
|packages/jest-reporters/src/__tests__/getSnapshotStatus.test.js|3✔️|||28ms|
|
|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__/getSnapshotSummary.test.js|4✅|||49ms|
|
||||||
|packages/jest-reporters/src/__tests__/getWatermarks.test.ts|2✔️|||37ms|
|
|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__/NotifyReporter.test.ts|18✅|||166ms|
|
||||||
|packages/jest-reporters/src/__tests__/SummaryReporter.test.js|4✔️|||366ms|
|
|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__/utils.test.ts|10✅|||85ms|
|
||||||
|packages/jest-reporters/src/__tests__/VerboseReporter.test.js|11✔️|||425ms|
|
|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-dependencies/src/__tests__/dependency_resolver.test.ts|11✅|||666ms|
|
||||||
|packages/jest-resolve/src/__tests__/isBuiltinModule.test.ts|4✔️|||36ms|
|
|packages/jest-resolve/src/__tests__/isBuiltinModule.test.ts|4✅|||36ms|
|
||||||
|packages/jest-resolve/src/__tests__/resolve.test.ts|16✔️|||1s|
|
|packages/jest-resolve/src/__tests__/resolve.test.ts|16✅|||1s|
|
||||||
|packages/jest-runner/src/__tests__/testRunner.test.ts|2✔️|||905ms|
|
|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__/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_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_environment.test.js|2✅|||497ms|
|
||||||
|packages/jest-runtime/src/__tests__/runtime_internal_module.test.js|4✔️|||727ms|
|
|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_fn.js|4✅|||479ms|
|
||||||
|packages/jest-runtime/src/__tests__/runtime_jest_spy_on.test.js|2✔️|||521ms|
|
|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_mock.test.js|4✅|||743ms|
|
||||||
|packages/jest-runtime/src/__tests__/runtime_module_directories.test.js|4✔️|||525ms|
|
|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_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_actual.test.js|2✅|||478ms|
|
||||||
|packages/jest-runtime/src/__tests__/runtime_require_cache.test.js|2✔️|||454ms|
|
|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_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_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_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_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_module.test.js|27✅|||2s|
|
||||||
|packages/jest-runtime/src/__tests__/runtime_require_resolve.test.ts|5✔️|||707ms|
|
|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_wrap.js|2✅|||263ms|
|
||||||
|packages/jest-runtime/src/__tests__/Runtime-sourceMaps.test.js|1✔️|||584ms|
|
|packages/jest-runtime/src/__tests__/Runtime-sourceMaps.test.js|1✅|||584ms|
|
||||||
|packages/jest-runtime/src/__tests__/Runtime-statics.test.js|2✔️|||162ms|
|
|packages/jest-runtime/src/__tests__/Runtime-statics.test.js|2✅|||162ms|
|
||||||
|packages/jest-serializer/src/__tests__/index.test.ts|17✔️|||158ms|
|
|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__/dedentLines.test.ts|17✅|||94ms|
|
||||||
|packages/jest-snapshot/src/__tests__/InlineSnapshots.test.ts|22✔️|||1s|
|
|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__/matcher.test.ts|1✅|||131ms|
|
||||||
|packages/jest-snapshot/src/__tests__/mockSerializer.test.ts|10✔️|||45ms|
|
|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__/printSnapshot.test.ts|71✅|||1s|
|
||||||
|packages/jest-snapshot/src/__tests__/SnapshotResolver.test.ts|10✔️|||98ms|
|
|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__/throwMatcher.test.ts|3✅|||481ms|
|
||||||
|packages/jest-snapshot/src/__tests__/utils.test.ts|26✔️|||214ms|
|
|packages/jest-snapshot/src/__tests__/utils.test.ts|26✅|||214ms|
|
||||||
|packages/jest-source-map/src/__tests__/getCallsite.test.ts|3✔️|||86ms|
|
|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-result/src/__tests__/formatTestResults.test.ts|1✅|||53ms|
|
||||||
|packages/jest-test-sequencer/src/__tests__/test_sequencer.test.js|8✔️|||251ms|
|
|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__/ScriptTransformer.test.ts|22✅|||2s|
|
||||||
|packages/jest-transform/src/__tests__/shouldInstrument.test.ts|25✔️|||155ms|
|
|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__/createProcessObject.test.ts|4✅|||81ms|
|
||||||
|packages/jest-util/src/__tests__/deepCyclicCopy.test.ts|12✔️|||86ms|
|
|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__/errorWithStack.test.ts|1✅|||41ms|
|
||||||
|packages/jest-util/src/__tests__/formatTime.test.ts|11✔️|||82ms|
|
|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__/globsToMatcher.test.ts|4✅|||56ms|
|
||||||
|packages/jest-util/src/__tests__/installCommonGlobals.test.ts|2✔️|||68ms|
|
|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__/isInteractive.test.ts|2✅|||35ms|
|
||||||
|packages/jest-util/src/__tests__/isPromise.test.ts|10✔️|||30ms|
|
|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__/validate.test.ts|23✅|||283ms|
|
||||||
|packages/jest-validate/src/__tests__/validateCLIOptions.test.js|6✔️|||83ms|
|
|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__/formatTestNameByPattern.test.ts|11✅|||129ms|
|
||||||
|packages/jest-watcher/src/lib/__tests__/prompt.test.ts|3✔️|||91ms|
|
|packages/jest-watcher/src/lib/__tests__/prompt.test.ts|3✅|||91ms|
|
||||||
|packages/jest-watcher/src/lib/__tests__/scroll.test.ts|5✔️|||57ms|
|
|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__/Farm.test.js|10✅|||158ms|
|
||||||
|packages/jest-worker/src/__tests__/FifoQueue.test.js|3✔️|||48ms|
|
|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__/index.test.js|8✅|||230ms|
|
||||||
|packages/jest-worker/src/__tests__/PriorityQueue.test.js|5✔️|||63ms|
|
|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__/process-integration.test.js|5✅|||62ms|
|
||||||
|packages/jest-worker/src/__tests__/thread-integration.test.js|6✔️|||114ms|
|
|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/__tests__/WorkerPool.test.js|3✅|||51ms|
|
||||||
|packages/jest-worker/src/base/__tests__/BaseWorkerPool.test.js|11✔️|||653ms|
|
|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__/ChildProcessWorker.test.js|17✅|||184ms|
|
||||||
|packages/jest-worker/src/workers/__tests__/NodeThreadsWorker.test.js|15✔️|||258ms|
|
|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__/processChild.test.js|10✅|||135ms|
|
||||||
|packages/jest-worker/src/workers/__tests__/threadChild.test.js|10✔️|||120ms|
|
|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__/AsymmetricMatcher.test.ts|38✅|||137ms|
|
||||||
|packages/pretty-format/src/__tests__/ConvertAnsi.test.ts|6✔️|||43ms|
|
|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__/DOMCollection.test.ts|10✅|||64ms|
|
||||||
|packages/pretty-format/src/__tests__/DOMElement.test.ts|28✔️|||148ms|
|
|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__/Immutable.test.ts|111✅|||443ms|
|
||||||
|packages/pretty-format/src/__tests__/prettyFormat.test.ts|86✔️|||219ms|
|
|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__/react.test.tsx|55✅|||325ms|
|
||||||
|packages/pretty-format/src/__tests__/ReactElement.test.ts|3✔️|||64ms|
|
|packages/pretty-format/src/__tests__/ReactElement.test.ts|3✅|||64ms|
|
||||||
### ❌ <a id="user-content-r0s75" href="#r0s75">e2e/__tests__/jestChangedFiles.test.ts</a>
|
### ❌ <a id="user-content-r0s75" href="#r0s75">e2e/__tests__/jestChangedFiles.test.ts</a>
|
||||||
```
|
```
|
||||||
✔️ gets hg SCM roots and dedupes them
|
✅ gets hg SCM roots and dedupes them
|
||||||
✔️ gets git SCM roots and dedupes them
|
✅ gets git SCM roots and dedupes them
|
||||||
✔️ gets mixed git and hg SCM roots and dedupes them
|
✅ gets mixed git and hg SCM roots and dedupes them
|
||||||
✔️ gets changed files for git
|
✅ gets changed files for git
|
||||||
✔️ monitors only root paths for git
|
✅ monitors only root paths for git
|
||||||
✔️ does not find changes in files with no diff, for git
|
✅ does not find changes in files with no diff, for git
|
||||||
✔️ handles a bad revision for "changedSince", for git
|
✅ handles a bad revision for "changedSince", for git
|
||||||
❌ gets changed files for hg
|
❌ gets changed files for hg
|
||||||
Error: abort: empty revision range
|
Error: abort: empty revision range
|
||||||
✔️ monitors only root paths for hg
|
✅ monitors only root paths for hg
|
||||||
✔️ handles a bad revision for "changedSince", for hg
|
✅ handles a bad revision for "changedSince", for hg
|
||||||
```
|
```
|
||||||
### ❌ <a id="user-content-r0s98" href="#r0s98">e2e/__tests__/onlyChanged.test.ts</a>
|
### ❌ <a id="user-content-r0s98" href="#r0s98">e2e/__tests__/onlyChanged.test.ts</a>
|
||||||
```
|
```
|
||||||
✔️ run for "onlyChanged" and "changedSince"
|
✅ run for "onlyChanged" and "changedSince"
|
||||||
✔️ run only changed files
|
✅ run only changed files
|
||||||
✔️ report test coverage for only changed files
|
✅ report test coverage for only changed files
|
||||||
✔️ report test coverage of source on test file change under only changed files
|
✅ report test coverage of source on test file change under only changed files
|
||||||
✔️ do not pickup non-tested files when reporting coverage on only changed files
|
✅ do not pickup non-tested files when reporting coverage on only changed files
|
||||||
✔️ collect test coverage when using onlyChanged
|
✅ collect test coverage when using onlyChanged
|
||||||
✔️ onlyChanged in config is overwritten by --all or testPathPattern
|
✅ onlyChanged in config is overwritten by --all or testPathPattern
|
||||||
❌ gets changed files for hg
|
❌ gets changed files for hg
|
||||||
Error: expect(received).toMatch(expected)
|
Error: expect(received).toMatch(expected)
|
||||||
✔️ path on Windows is case-insensitive
|
✅ path on Windows is case-insensitive
|
||||||
```
|
```
|
||||||
@@ -3,12 +3,12 @@
|
|||||||
**6** tests were completed in **12ms** with **1** passed, **4** failed and **1** skipped.
|
**6** tests were completed in **12ms** with **1** passed, **4** failed and **1** skipped.
|
||||||
|Test suite|Passed|Failed|Skipped|Time|
|
|Test suite|Passed|Failed|Skipped|Time|
|
||||||
|:---|---:|---:|---:|---:|
|
|:---|---:|---:|---:|---:|
|
||||||
|[test/main.test.js](#r0s0)|1✔️|3❌||1ms|
|
|[test/main.test.js](#r0s0)|1✅|3❌||1ms|
|
||||||
|[test/second.test.js](#r0s1)||1❌|1✖️|8ms|
|
|[test/second.test.js](#r0s1)||1❌|1⚪|8ms|
|
||||||
### ❌ <a id="user-content-r0s0" href="#r0s0">test/main.test.js</a>
|
### ❌ <a id="user-content-r0s0" href="#r0s0">test/main.test.js</a>
|
||||||
```
|
```
|
||||||
Test 1
|
Test 1
|
||||||
✔️ Passing test
|
✅ Passing test
|
||||||
Test 1 Test 1.1
|
Test 1 Test 1.1
|
||||||
❌ Exception in target unit
|
❌ Exception in target unit
|
||||||
Some error
|
Some error
|
||||||
@@ -23,7 +23,7 @@ Test 2
|
|||||||
```
|
```
|
||||||
### ❌ <a id="user-content-r0s1" href="#r0s1">test/second.test.js</a>
|
### ❌ <a id="user-content-r0s1" href="#r0s1">test/second.test.js</a>
|
||||||
```
|
```
|
||||||
✖️ Skipped test
|
⚪ Skipped test
|
||||||
❌ Timeout test
|
❌ Timeout test
|
||||||
Timeout of 1ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (C:\Users\Michal\Workspace\dorny\test-reporter\reports\mocha\test\second.test.js)
|
Timeout of 1ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (C:\Users\Michal\Workspace\dorny\test-reporter\reports\mocha\test\second.test.js)
|
||||||
```
|
```
|
||||||
@@ -1,41 +1,41 @@
|
|||||||

|

|
||||||
## ✔️ <a id="user-content-r0" href="#r0">fixtures/external/mocha/mocha-test-results.json</a>
|
## ✅ <a id="user-content-r0" href="#r0">fixtures/external/mocha/mocha-test-results.json</a>
|
||||||
**839** tests were completed in **6s** with **833** passed, **0** failed and **6** skipped.
|
**839** tests were completed in **6s** with **833** passed, **0** failed and **6** skipped.
|
||||||
|Test suite|Passed|Failed|Skipped|Time|
|
|Test suite|Passed|Failed|Skipped|Time|
|
||||||
|:---|---:|---:|---:|---:|
|
|:---|---:|---:|---:|---:|
|
||||||
|test/node-unit/buffered-worker-pool.spec.js|14✔️|||8ms|
|
|test/node-unit/buffered-worker-pool.spec.js|14✅|||8ms|
|
||||||
|test/node-unit/cli/config.spec.js|10✔️|||8ms|
|
|test/node-unit/cli/config.spec.js|10✅|||8ms|
|
||||||
|test/node-unit/cli/node-flags.spec.js|105✔️|||9ms|
|
|test/node-unit/cli/node-flags.spec.js|105✅|||9ms|
|
||||||
|test/node-unit/cli/options.spec.js|36✔️|||250ms|
|
|test/node-unit/cli/options.spec.js|36✅|||250ms|
|
||||||
|test/node-unit/cli/run-helpers.spec.js|9✔️|||8ms|
|
|test/node-unit/cli/run-helpers.spec.js|9✅|||8ms|
|
||||||
|test/node-unit/cli/run.spec.js|40✔️|||4ms|
|
|test/node-unit/cli/run.spec.js|40✅|||4ms|
|
||||||
|test/node-unit/mocha.spec.js|24✔️|||33ms|
|
|test/node-unit/mocha.spec.js|24✅|||33ms|
|
||||||
|test/node-unit/parallel-buffered-runner.spec.js|19✔️|||23ms|
|
|test/node-unit/parallel-buffered-runner.spec.js|19✅|||23ms|
|
||||||
|test/node-unit/reporters/parallel-buffered.spec.js|6✔️|||16ms|
|
|test/node-unit/reporters/parallel-buffered.spec.js|6✅|||16ms|
|
||||||
|test/node-unit/serializer.spec.js|40✔️|||31ms|
|
|test/node-unit/serializer.spec.js|40✅|||31ms|
|
||||||
|test/node-unit/stack-trace-filter.spec.js|2✔️||4✖️|1ms|
|
|test/node-unit/stack-trace-filter.spec.js|2✅||4⚪|1ms|
|
||||||
|test/node-unit/utils.spec.js|5✔️|||1ms|
|
|test/node-unit/utils.spec.js|5✅|||1ms|
|
||||||
|test/node-unit/worker.spec.js|15✔️|||92ms|
|
|test/node-unit/worker.spec.js|15✅|||92ms|
|
||||||
|test/unit/context.spec.js|8✔️|||5ms|
|
|test/unit/context.spec.js|8✅|||5ms|
|
||||||
|test/unit/duration.spec.js|3✔️|||166ms|
|
|test/unit/duration.spec.js|3✅|||166ms|
|
||||||
|test/unit/errors.spec.js|13✔️|||5ms|
|
|test/unit/errors.spec.js|13✅|||5ms|
|
||||||
|test/unit/globals.spec.js|4✔️|||0ms|
|
|test/unit/globals.spec.js|4✅|||0ms|
|
||||||
|test/unit/grep.spec.js|8✔️|||2ms|
|
|test/unit/grep.spec.js|8✅|||2ms|
|
||||||
|test/unit/hook-async.spec.js|3✔️|||1ms|
|
|test/unit/hook-async.spec.js|3✅|||1ms|
|
||||||
|test/unit/hook-sync-nested.spec.js|4✔️|||1ms|
|
|test/unit/hook-sync-nested.spec.js|4✅|||1ms|
|
||||||
|test/unit/hook-sync.spec.js|3✔️|||0ms|
|
|test/unit/hook-sync.spec.js|3✅|||0ms|
|
||||||
|test/unit/hook-timeout.spec.js|1✔️|||0ms|
|
|test/unit/hook-timeout.spec.js|1✅|||0ms|
|
||||||
|test/unit/hook.spec.js|4✔️|||0ms|
|
|test/unit/hook.spec.js|4✅|||0ms|
|
||||||
|test/unit/mocha.spec.js|115✔️||1✖️|128ms|
|
|test/unit/mocha.spec.js|115✅||1⚪|128ms|
|
||||||
|test/unit/overspecified-async.spec.js|1✔️|||3ms|
|
|test/unit/overspecified-async.spec.js|1✅|||3ms|
|
||||||
|test/unit/parse-query.spec.js|2✔️|||1ms|
|
|test/unit/parse-query.spec.js|2✅|||1ms|
|
||||||
|test/unit/plugin-loader.spec.js|41✔️||1✖️|16ms|
|
|test/unit/plugin-loader.spec.js|41✅||1⚪|16ms|
|
||||||
|test/unit/required-tokens.spec.js|1✔️|||0ms|
|
|test/unit/required-tokens.spec.js|1✅|||0ms|
|
||||||
|test/unit/root.spec.js|1✔️|||0ms|
|
|test/unit/root.spec.js|1✅|||0ms|
|
||||||
|test/unit/runnable.spec.js|55✔️|||122ms|
|
|test/unit/runnable.spec.js|55✅|||122ms|
|
||||||
|test/unit/runner.spec.js|77✔️|||43ms|
|
|test/unit/runner.spec.js|77✅|||43ms|
|
||||||
|test/unit/suite.spec.js|57✔️|||14ms|
|
|test/unit/suite.spec.js|57✅|||14ms|
|
||||||
|test/unit/test.spec.js|15✔️|||0ms|
|
|test/unit/test.spec.js|15✅|||0ms|
|
||||||
|test/unit/throw.spec.js|9✔️|||9ms|
|
|test/unit/throw.spec.js|9✅|||9ms|
|
||||||
|test/unit/timeout.spec.js|8✔️|||109ms|
|
|test/unit/timeout.spec.js|8✅|||109ms|
|
||||||
|test/unit/utils.spec.js|75✔️|||24ms|
|
|test/unit/utils.spec.js|75✅|||24ms|
|
||||||
@@ -3,368 +3,368 @@
|
|||||||
**269** tests were completed in **0ms** with **268** passed, **1** failed and **0** skipped.
|
**269** tests were completed in **0ms** with **268** passed, **1** failed and **0** skipped.
|
||||||
|Test suite|Passed|Failed|Skipped|Time|
|
|Test suite|Passed|Failed|Skipped|Time|
|
||||||
|:---|---:|---:|---:|---:|
|
|:---|---:|---:|---:|---:|
|
||||||
|[test/builder_test.dart](#r0s0)|24✔️|||402ms|
|
|[test/builder_test.dart](#r0s0)|24✅|||402ms|
|
||||||
|[test/change_notifier_provider_test.dart](#r0s1)|10✔️|||306ms|
|
|[test/change_notifier_provider_test.dart](#r0s1)|10✅|||306ms|
|
||||||
|[test/consumer_test.dart](#r0s2)|18✔️|||340ms|
|
|[test/consumer_test.dart](#r0s2)|18✅|||340ms|
|
||||||
|[test/context_test.dart](#r0s3)|31✔️|||698ms|
|
|[test/context_test.dart](#r0s3)|31✅|||698ms|
|
||||||
|[test/future_provider_test.dart](#r0s4)|10✔️|||305ms|
|
|[test/future_provider_test.dart](#r0s4)|10✅|||305ms|
|
||||||
|[test/inherited_provider_test.dart](#r0s5)|81✔️|||1s|
|
|[test/inherited_provider_test.dart](#r0s5)|81✅|||1s|
|
||||||
|[test/listenable_provider_test.dart](#r0s6)|16✔️|||353ms|
|
|[test/listenable_provider_test.dart](#r0s6)|16✅|||353ms|
|
||||||
|[test/listenable_proxy_provider_test.dart](#r0s7)|12✔️|||373ms|
|
|[test/listenable_proxy_provider_test.dart](#r0s7)|12✅|||373ms|
|
||||||
|[test/multi_provider_test.dart](#r0s8)|3✔️|||198ms|
|
|[test/multi_provider_test.dart](#r0s8)|3✅|||198ms|
|
||||||
|[test/provider_test.dart](#r0s9)|11✔️|||306ms|
|
|[test/provider_test.dart](#r0s9)|11✅|||306ms|
|
||||||
|[test/proxy_provider_test.dart](#r0s10)|16✔️|||438ms|
|
|[test/proxy_provider_test.dart](#r0s10)|16✅|||438ms|
|
||||||
|[test/reassemble_test.dart](#r0s11)|3✔️|||221ms|
|
|[test/reassemble_test.dart](#r0s11)|3✅|||221ms|
|
||||||
|[test/selector_test.dart](#r0s12)|17✔️|||364ms|
|
|[test/selector_test.dart](#r0s12)|17✅|||364ms|
|
||||||
|[test/stateful_provider_test.dart](#r0s13)|4✔️|||254ms|
|
|[test/stateful_provider_test.dart](#r0s13)|4✅|||254ms|
|
||||||
|[test/stream_provider_test.dart](#r0s14)|8✔️|||282ms|
|
|[test/stream_provider_test.dart](#r0s14)|8✅|||282ms|
|
||||||
|[test/value_listenable_provider_test.dart](#r0s15)|4✔️|1❌||327ms|
|
|[test/value_listenable_provider_test.dart](#r0s15)|4✅|1❌||327ms|
|
||||||
### ✔️ <a id="user-content-r0s0" href="#r0s0">test/builder_test.dart</a>
|
### ✅ <a id="user-content-r0s0" href="#r0s0">test/builder_test.dart</a>
|
||||||
```
|
```
|
||||||
ChangeNotifierProvider
|
ChangeNotifierProvider
|
||||||
✔️ default
|
✅ default
|
||||||
✔️ .value
|
✅ .value
|
||||||
ListenableProvider
|
ListenableProvider
|
||||||
✔️ default
|
✅ default
|
||||||
✔️ .value
|
✅ .value
|
||||||
Provider
|
Provider
|
||||||
✔️ default
|
✅ default
|
||||||
✔️ .value
|
✅ .value
|
||||||
ProxyProvider
|
ProxyProvider
|
||||||
✔️ 0
|
✅ 0
|
||||||
✔️ 1
|
✅ 1
|
||||||
✔️ 2
|
✅ 2
|
||||||
✔️ 3
|
✅ 3
|
||||||
✔️ 4
|
✅ 4
|
||||||
✔️ 5
|
✅ 5
|
||||||
✔️ 6
|
✅ 6
|
||||||
MultiProvider
|
MultiProvider
|
||||||
✔️ with 1 ChangeNotifierProvider default
|
✅ with 1 ChangeNotifierProvider default
|
||||||
✔️ with 2 ChangeNotifierProvider default
|
✅ with 2 ChangeNotifierProvider default
|
||||||
✔️ with ListenableProvider default
|
✅ with ListenableProvider default
|
||||||
✔️ with Provider default
|
✅ with Provider default
|
||||||
✔️ with ProxyProvider0
|
✅ with ProxyProvider0
|
||||||
✔️ with ProxyProvider1
|
✅ with ProxyProvider1
|
||||||
✔️ with ProxyProvider2
|
✅ with ProxyProvider2
|
||||||
✔️ with ProxyProvider3
|
✅ with ProxyProvider3
|
||||||
✔️ with ProxyProvider4
|
✅ with ProxyProvider4
|
||||||
✔️ with ProxyProvider5
|
✅ with ProxyProvider5
|
||||||
✔️ with ProxyProvider6
|
✅ with ProxyProvider6
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s1" href="#r0s1">test/change_notifier_provider_test.dart</a>
|
### ✅ <a id="user-content-r0s1" href="#r0s1">test/change_notifier_provider_test.dart</a>
|
||||||
```
|
```
|
||||||
✔️ Use builder property, not child
|
✅ Use builder property, not child
|
||||||
ChangeNotifierProvider
|
ChangeNotifierProvider
|
||||||
✔️ value
|
✅ value
|
||||||
✔️ builder
|
✅ builder
|
||||||
✔️ builder1
|
✅ builder1
|
||||||
✔️ builder2
|
✅ builder2
|
||||||
✔️ builder3
|
✅ builder3
|
||||||
✔️ builder4
|
✅ builder4
|
||||||
✔️ builder5
|
✅ builder5
|
||||||
✔️ builder6
|
✅ builder6
|
||||||
✔️ builder0
|
✅ builder0
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s2" href="#r0s2">test/consumer_test.dart</a>
|
### ✅ <a id="user-content-r0s2" href="#r0s2">test/consumer_test.dart</a>
|
||||||
```
|
```
|
||||||
consumer
|
consumer
|
||||||
✔️ obtains value from Provider<T>
|
✅ obtains value from Provider<T>
|
||||||
✔️ crashed with no builder
|
✅ crashed with no builder
|
||||||
✔️ can be used inside MultiProvider
|
✅ can be used inside MultiProvider
|
||||||
consumer2
|
consumer2
|
||||||
✔️ obtains value from Provider<T>
|
✅ obtains value from Provider<T>
|
||||||
✔️ crashed with no builder
|
✅ crashed with no builder
|
||||||
✔️ can be used inside MultiProvider
|
✅ can be used inside MultiProvider
|
||||||
consumer3
|
consumer3
|
||||||
✔️ obtains value from Provider<T>
|
✅ obtains value from Provider<T>
|
||||||
✔️ crashed with no builder
|
✅ crashed with no builder
|
||||||
✔️ can be used inside MultiProvider
|
✅ can be used inside MultiProvider
|
||||||
consumer4
|
consumer4
|
||||||
✔️ obtains value from Provider<T>
|
✅ obtains value from Provider<T>
|
||||||
✔️ crashed with no builder
|
✅ crashed with no builder
|
||||||
✔️ can be used inside MultiProvider
|
✅ can be used inside MultiProvider
|
||||||
consumer5
|
consumer5
|
||||||
✔️ obtains value from Provider<T>
|
✅ obtains value from Provider<T>
|
||||||
✔️ crashed with no builder
|
✅ crashed with no builder
|
||||||
✔️ can be used inside MultiProvider
|
✅ can be used inside MultiProvider
|
||||||
consumer6
|
consumer6
|
||||||
✔️ obtains value from Provider<T>
|
✅ obtains value from Provider<T>
|
||||||
✔️ crashed with no builder
|
✅ crashed with no builder
|
||||||
✔️ can be used inside MultiProvider
|
✅ can be used inside MultiProvider
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s3" href="#r0s3">test/context_test.dart</a>
|
### ✅ <a id="user-content-r0s3" href="#r0s3">test/context_test.dart</a>
|
||||||
```
|
```
|
||||||
✔️ watch in layoutbuilder
|
✅ watch in layoutbuilder
|
||||||
✔️ select in layoutbuilder
|
✅ select in layoutbuilder
|
||||||
✔️ cannot select in listView
|
✅ cannot select in listView
|
||||||
✔️ watch in listView
|
✅ watch in listView
|
||||||
✔️ watch in gridView
|
✅ watch in gridView
|
||||||
✔️ clears select dependencies for all dependents
|
✅ clears select dependencies for all dependents
|
||||||
BuildContext
|
BuildContext
|
||||||
✔️ internal selected value is updated
|
✅ internal selected value is updated
|
||||||
✔️ create can use read without being lazy
|
✅ create can use read without being lazy
|
||||||
✔️ watch can be used inside InheritedProvider.update
|
✅ watch can be used inside InheritedProvider.update
|
||||||
✔️ select doesn't fail if it loads a provider that depends on other providers
|
✅ select doesn't fail if it loads a provider that depends on other providers
|
||||||
✔️ don't call old selectors if the child rebuilds individually
|
✅ don't call old selectors if the child rebuilds individually
|
||||||
✔️ selects throws inside click handlers
|
✅ selects throws inside click handlers
|
||||||
✔️ select throws if try to read dynamic
|
✅ select throws if try to read dynamic
|
||||||
✔️ select throws ProviderNotFoundException
|
✅ select throws ProviderNotFoundException
|
||||||
✔️ select throws if watch called inside the callback from build
|
✅ select throws if watch called inside the callback from build
|
||||||
✔️ select throws if read called inside the callback from build
|
✅ select throws if read called inside the callback from build
|
||||||
✔️ select throws if select called inside the callback from build
|
✅ select throws if select called inside the callback from build
|
||||||
✔️ select throws if read called inside the callback on dependency change
|
✅ select throws if read called inside the callback on dependency change
|
||||||
✔️ select throws if watch called inside the callback on dependency change
|
✅ select throws if watch called inside the callback on dependency change
|
||||||
✔️ select throws if select called inside the callback on dependency change
|
✅ select throws if select called inside the callback on dependency change
|
||||||
✔️ can call read inside didChangeDependencies
|
✅ can call read inside didChangeDependencies
|
||||||
✔️ select cannot be called inside didChangeDependencies
|
✅ select cannot be called inside didChangeDependencies
|
||||||
✔️ select in initState throws
|
✅ select in initState throws
|
||||||
✔️ watch in initState throws
|
✅ watch in initState throws
|
||||||
✔️ read in initState works
|
✅ read in initState works
|
||||||
✔️ consumer can be removed and selector stops to be called
|
✅ consumer can be removed and selector stops to be called
|
||||||
✔️ context.select deeply compares maps
|
✅ context.select deeply compares maps
|
||||||
✔️ context.select deeply compares lists
|
✅ context.select deeply compares lists
|
||||||
✔️ context.select deeply compares iterables
|
✅ context.select deeply compares iterables
|
||||||
✔️ context.select deeply compares sets
|
✅ context.select deeply compares sets
|
||||||
✔️ context.watch listens to value changes
|
✅ context.watch listens to value changes
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s4" href="#r0s4">test/future_provider_test.dart</a>
|
### ✅ <a id="user-content-r0s4" href="#r0s4">test/future_provider_test.dart</a>
|
||||||
```
|
```
|
||||||
✔️ works with MultiProvider
|
✅ works with MultiProvider
|
||||||
✔️ (catchError) previous future completes after transition is no-op
|
✅ (catchError) previous future completes after transition is no-op
|
||||||
✔️ previous future completes after transition is no-op
|
✅ previous future completes after transition is no-op
|
||||||
✔️ transition from future to future preserve state
|
✅ transition from future to future preserve state
|
||||||
✔️ throws if future has error and catchError is missing
|
✅ throws if future has error and catchError is missing
|
||||||
✔️ calls catchError if present and future has error
|
✅ calls catchError if present and future has error
|
||||||
✔️ works with null
|
✅ works with null
|
||||||
✔️ create and dispose future with builder
|
✅ create and dispose future with builder
|
||||||
✔️ FutureProvider() crashes if builder is null
|
✅ FutureProvider() crashes if builder is null
|
||||||
FutureProvider()
|
FutureProvider()
|
||||||
✔️ crashes if builder is null
|
✅ crashes if builder is null
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s5" href="#r0s5">test/inherited_provider_test.dart</a>
|
### ✅ <a id="user-content-r0s5" href="#r0s5">test/inherited_provider_test.dart</a>
|
||||||
```
|
```
|
||||||
✔️ regression test #377
|
✅ regression test #377
|
||||||
✔️ rebuild on dependency flags update
|
✅ rebuild on dependency flags update
|
||||||
✔️ properly update debug flags if a create triggers another deferred create
|
✅ properly update debug flags if a create triggers another deferred create
|
||||||
✔️ properly update debug flags if a create triggers another deferred create
|
✅ properly update debug flags if a create triggers another deferred create
|
||||||
✔️ properly update debug flags if an update triggers another create/update
|
✅ properly update debug flags if an update triggers another create/update
|
||||||
✔️ properly update debug flags if a create triggers another create/update
|
✅ properly update debug flags if a create triggers another create/update
|
||||||
✔️ Provider.of(listen: false) outside of build works when it loads a provider
|
✅ Provider.of(listen: false) outside of build works when it loads a provider
|
||||||
✔️ new value is available in didChangeDependencies
|
✅ new value is available in didChangeDependencies
|
||||||
✔️ builder receives the current value and updates independently from `update`
|
✅ builder receives the current value and updates independently from `update`
|
||||||
✔️ builder can _not_ rebuild when provider updates
|
✅ builder can _not_ rebuild when provider updates
|
||||||
✔️ builder rebuilds if provider is recreated
|
✅ builder rebuilds if provider is recreated
|
||||||
✔️ provider.of throws if listen:true outside of the widget tree
|
✅ provider.of throws if listen:true outside of the widget tree
|
||||||
✔️ InheritedProvider throws if no child is provided with default constructor
|
✅ InheritedProvider throws if no child is provided with default constructor
|
||||||
✔️ InheritedProvider throws if no child is provided with value constructor
|
✅ InheritedProvider throws if no child is provided with value constructor
|
||||||
✔️ DeferredInheritedProvider throws if no child is provided with default constructor
|
✅ DeferredInheritedProvider throws if no child is provided with default constructor
|
||||||
✔️ DeferredInheritedProvider throws if no child is provided with value constructor
|
✅ DeferredInheritedProvider throws if no child is provided with value constructor
|
||||||
✔️ startListening markNeedsNotifyDependents
|
✅ startListening markNeedsNotifyDependents
|
||||||
✔️ InheritedProvider can be subclassed
|
✅ InheritedProvider can be subclassed
|
||||||
✔️ DeferredInheritedProvider can be subclassed
|
✅ DeferredInheritedProvider can be subclassed
|
||||||
✔️ can be used with MultiProvider
|
✅ can be used with MultiProvider
|
||||||
✔️ throw if the widget ctor changes
|
✅ throw if the widget ctor changes
|
||||||
✔️ InheritedProvider lazy loading can be disabled
|
✅ InheritedProvider lazy loading can be disabled
|
||||||
✔️ InheritedProvider.value lazy loading can be disabled
|
✅ InheritedProvider.value lazy loading can be disabled
|
||||||
✔️ InheritedProvider subclass don't have to specify default lazy value
|
✅ InheritedProvider subclass don't have to specify default lazy value
|
||||||
✔️ DeferredInheritedProvider lazy loading can be disabled
|
✅ DeferredInheritedProvider lazy loading can be disabled
|
||||||
✔️ DeferredInheritedProvider.value lazy loading can be disabled
|
✅ DeferredInheritedProvider.value lazy loading can be disabled
|
||||||
✔️ selector
|
✅ selector
|
||||||
✔️ can select multiple types from same provider
|
✅ can select multiple types from same provider
|
||||||
✔️ can select same type on two different providers
|
✅ can select same type on two different providers
|
||||||
✔️ can select same type twice on same provider
|
✅ can select same type twice on same provider
|
||||||
✔️ Provider.of has a proper error message if context is null
|
✅ Provider.of has a proper error message if context is null
|
||||||
diagnostics
|
diagnostics
|
||||||
✔️ InheritedProvider.value
|
✅ InheritedProvider.value
|
||||||
✔️ InheritedProvider doesn't break lazy loading
|
✅ InheritedProvider doesn't break lazy loading
|
||||||
✔️ InheritedProvider show if listening
|
✅ InheritedProvider show if listening
|
||||||
✔️ DeferredInheritedProvider.value
|
✅ DeferredInheritedProvider.value
|
||||||
✔️ DeferredInheritedProvider
|
✅ DeferredInheritedProvider
|
||||||
InheritedProvider.value()
|
InheritedProvider.value()
|
||||||
✔️ markNeedsNotifyDependents during startListening is noop
|
✅ markNeedsNotifyDependents during startListening is noop
|
||||||
✔️ startListening called again when create returns new value
|
✅ startListening called again when create returns new value
|
||||||
✔️ startListening
|
✅ startListening
|
||||||
✔️ stopListening not called twice if rebuild doesn't have listeners
|
✅ stopListening not called twice if rebuild doesn't have listeners
|
||||||
✔️ removeListener cannot be null
|
✅ removeListener cannot be null
|
||||||
✔️ pass down current value
|
✅ pass down current value
|
||||||
✔️ default updateShouldNotify
|
✅ default updateShouldNotify
|
||||||
✔️ custom updateShouldNotify
|
✅ custom updateShouldNotify
|
||||||
InheritedProvider()
|
InheritedProvider()
|
||||||
✔️ hasValue
|
✅ hasValue
|
||||||
✔️ provider calls update if rebuilding only due to didChangeDependencies
|
✅ provider calls update if rebuilding only due to didChangeDependencies
|
||||||
✔️ provider notifying dependents doesn't call update
|
✅ provider notifying dependents doesn't call update
|
||||||
✔️ update can call Provider.of with listen:true
|
✅ update can call Provider.of with listen:true
|
||||||
✔️ update lazy loaded can call Provider.of with listen:true
|
✅ update lazy loaded can call Provider.of with listen:true
|
||||||
✔️ markNeedsNotifyDependents during startListening is noop
|
✅ markNeedsNotifyDependents during startListening is noop
|
||||||
✔️ update can obtain parent of the same type than self
|
✅ update can obtain parent of the same type than self
|
||||||
✔️ _debugCheckInvalidValueType
|
✅ _debugCheckInvalidValueType
|
||||||
✔️ startListening
|
✅ startListening
|
||||||
✔️ startListening called again when create returns new value
|
✅ startListening called again when create returns new value
|
||||||
✔️ stopListening not called twice if rebuild doesn't have listeners
|
✅ stopListening not called twice if rebuild doesn't have listeners
|
||||||
✔️ removeListener cannot be null
|
✅ removeListener cannot be null
|
||||||
✔️ fails if initialValueBuilder calls inheritFromElement/inheritFromWiggetOfExactType
|
✅ fails if initialValueBuilder calls inheritFromElement/inheritFromWiggetOfExactType
|
||||||
✔️ builder is called on every rebuild and after a dependency change
|
✅ builder is called on every rebuild and after a dependency change
|
||||||
✔️ builder with no updateShouldNotify use ==
|
✅ builder with no updateShouldNotify use ==
|
||||||
✔️ builder calls updateShouldNotify callback
|
✅ builder calls updateShouldNotify callback
|
||||||
✔️ initialValue is transmitted to valueBuilder
|
✅ initialValue is transmitted to valueBuilder
|
||||||
✔️ calls builder again if dependencies change
|
✅ calls builder again if dependencies change
|
||||||
✔️ exposes initialValue if valueBuilder is null
|
✅ exposes initialValue if valueBuilder is null
|
||||||
✔️ call dispose on unmount
|
✅ call dispose on unmount
|
||||||
✔️ builder unmount, dispose not called if value never read
|
✅ builder unmount, dispose not called if value never read
|
||||||
✔️ call dispose after new value
|
✅ call dispose after new value
|
||||||
✔️ valueBuilder works without initialBuilder
|
✅ valueBuilder works without initialBuilder
|
||||||
✔️ calls initialValueBuilder lazily once
|
✅ calls initialValueBuilder lazily once
|
||||||
✔️ throws if both builder and initialBuilder are missing
|
✅ throws if both builder and initialBuilder are missing
|
||||||
DeferredInheritedProvider.value()
|
DeferredInheritedProvider.value()
|
||||||
✔️ hasValue
|
✅ hasValue
|
||||||
✔️ startListening
|
✅ startListening
|
||||||
✔️ stopListening cannot be null
|
✅ stopListening cannot be null
|
||||||
✔️ startListening doesn't need setState if already initialized
|
✅ startListening doesn't need setState if already initialized
|
||||||
✔️ setState without updateShouldNotify
|
✅ setState without updateShouldNotify
|
||||||
✔️ setState with updateShouldNotify
|
✅ setState with updateShouldNotify
|
||||||
✔️ startListening never leave the widget uninitialized
|
✅ startListening never leave the widget uninitialized
|
||||||
✔️ startListening called again on controller change
|
✅ startListening called again on controller change
|
||||||
DeferredInheritedProvider()
|
DeferredInheritedProvider()
|
||||||
✔️ create can't call inherited widgets
|
✅ create can't call inherited widgets
|
||||||
✔️ creates the value lazily
|
✅ creates the value lazily
|
||||||
✔️ dispose
|
✅ dispose
|
||||||
✔️ dispose no-op if never built
|
✅ dispose no-op if never built
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s6" href="#r0s6">test/listenable_provider_test.dart</a>
|
### ✅ <a id="user-content-r0s6" href="#r0s6">test/listenable_provider_test.dart</a>
|
||||||
```
|
```
|
||||||
ListenableProvider
|
ListenableProvider
|
||||||
✔️ works with MultiProvider
|
✅ works with MultiProvider
|
||||||
✔️ asserts that the created notifier can have listeners
|
✅ asserts that the created notifier can have listeners
|
||||||
✔️ don't listen again if listenable instance doesn't change
|
✅ don't listen again if listenable instance doesn't change
|
||||||
✔️ works with null (default)
|
✅ works with null (default)
|
||||||
✔️ works with null (create)
|
✅ works with null (create)
|
||||||
✔️ stateful create called once
|
✅ stateful create called once
|
||||||
✔️ dispose called on unmount
|
✅ dispose called on unmount
|
||||||
✔️ dispose can be null
|
✅ dispose can be null
|
||||||
✔️ changing listenable rebuilds descendants
|
✅ changing listenable rebuilds descendants
|
||||||
✔️ rebuilding with the same provider don't rebuilds descendants
|
✅ rebuilding with the same provider don't rebuilds descendants
|
||||||
✔️ notifylistener rebuilds descendants
|
✅ notifylistener rebuilds descendants
|
||||||
ListenableProvider value constructor
|
ListenableProvider value constructor
|
||||||
✔️ pass down key
|
✅ pass down key
|
||||||
✔️ changing the Listenable instance rebuilds dependents
|
✅ changing the Listenable instance rebuilds dependents
|
||||||
ListenableProvider stateful constructor
|
ListenableProvider stateful constructor
|
||||||
✔️ called with context
|
✅ called with context
|
||||||
✔️ pass down key
|
✅ pass down key
|
||||||
✔️ throws if create is null
|
✅ throws if create is null
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s7" href="#r0s7">test/listenable_proxy_provider_test.dart</a>
|
### ✅ <a id="user-content-r0s7" href="#r0s7">test/listenable_proxy_provider_test.dart</a>
|
||||||
```
|
```
|
||||||
ListenableProxyProvider
|
ListenableProxyProvider
|
||||||
✔️ throws if update is missing
|
✅ throws if update is missing
|
||||||
✔️ asserts that the created notifier has no listener
|
✅ asserts that the created notifier has no listener
|
||||||
✔️ asserts that the created notifier has no listener after rebuild
|
✅ asserts that the created notifier has no listener after rebuild
|
||||||
✔️ rebuilds dependendents when listeners are called
|
✅ rebuilds dependendents when listeners are called
|
||||||
✔️ update returning a new Listenable disposes the previously created value and update dependents
|
✅ update returning a new Listenable disposes the previously created value and update dependents
|
||||||
✔️ disposes of created value
|
✅ disposes of created value
|
||||||
ListenableProxyProvider variants
|
ListenableProxyProvider variants
|
||||||
✔️ ListenableProxyProvider
|
✅ ListenableProxyProvider
|
||||||
✔️ ListenableProxyProvider2
|
✅ ListenableProxyProvider2
|
||||||
✔️ ListenableProxyProvider3
|
✅ ListenableProxyProvider3
|
||||||
✔️ ListenableProxyProvider4
|
✅ ListenableProxyProvider4
|
||||||
✔️ ListenableProxyProvider5
|
✅ ListenableProxyProvider5
|
||||||
✔️ ListenableProxyProvider6
|
✅ ListenableProxyProvider6
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s8" href="#r0s8">test/multi_provider_test.dart</a>
|
### ✅ <a id="user-content-r0s8" href="#r0s8">test/multi_provider_test.dart</a>
|
||||||
```
|
```
|
||||||
MultiProvider
|
MultiProvider
|
||||||
✔️ throw if providers is null
|
✅ throw if providers is null
|
||||||
✔️ MultiProvider children can only access parent providers
|
✅ MultiProvider children can only access parent providers
|
||||||
✔️ MultiProvider.providers with ignored child
|
✅ MultiProvider.providers with ignored child
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s9" href="#r0s9">test/provider_test.dart</a>
|
### ✅ <a id="user-content-r0s9" href="#r0s9">test/provider_test.dart</a>
|
||||||
```
|
```
|
||||||
✔️ works with MultiProvider
|
✅ works with MultiProvider
|
||||||
Provider.of
|
Provider.of
|
||||||
✔️ throws if T is dynamic
|
✅ throws if T is dynamic
|
||||||
✔️ listen defaults to true when building widgets
|
✅ listen defaults to true when building widgets
|
||||||
✔️ listen defaults to false outside of the widget tree
|
✅ listen defaults to false outside of the widget tree
|
||||||
✔️ listen:false doesn't trigger rebuild
|
✅ listen:false doesn't trigger rebuild
|
||||||
✔️ listen:true outside of the widget tree throws
|
✅ listen:true outside of the widget tree throws
|
||||||
Provider
|
Provider
|
||||||
✔️ throws if the provided value is a Listenable/Stream
|
✅ throws if the provided value is a Listenable/Stream
|
||||||
✔️ debugCheckInvalidValueType can be disabled
|
✅ debugCheckInvalidValueType can be disabled
|
||||||
✔️ simple usage
|
✅ simple usage
|
||||||
✔️ throws an error if no provider found
|
✅ throws an error if no provider found
|
||||||
✔️ update should notify
|
✅ update should notify
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s10" href="#r0s10">test/proxy_provider_test.dart</a>
|
### ✅ <a id="user-content-r0s10" href="#r0s10">test/proxy_provider_test.dart</a>
|
||||||
```
|
```
|
||||||
ProxyProvider
|
ProxyProvider
|
||||||
✔️ throws if the provided value is a Listenable/Stream
|
✅ throws if the provided value is a Listenable/Stream
|
||||||
✔️ debugCheckInvalidValueType can be disabled
|
✅ debugCheckInvalidValueType can be disabled
|
||||||
✔️ create creates initial value
|
✅ create creates initial value
|
||||||
✔️ consume another providers
|
✅ consume another providers
|
||||||
✔️ rebuild descendants if value change
|
✅ rebuild descendants if value change
|
||||||
✔️ call dispose when unmounted with the latest result
|
✅ call dispose when unmounted with the latest result
|
||||||
✔️ don't rebuild descendants if value doesn't change
|
✅ don't rebuild descendants if value doesn't change
|
||||||
✔️ pass down updateShouldNotify
|
✅ pass down updateShouldNotify
|
||||||
✔️ works with MultiProvider
|
✅ works with MultiProvider
|
||||||
✔️ update callback can trigger descendants setState synchronously
|
✅ update callback can trigger descendants setState synchronously
|
||||||
✔️ throws if update is null
|
✅ throws if update is null
|
||||||
ProxyProvider variants
|
ProxyProvider variants
|
||||||
✔️ ProxyProvider2
|
✅ ProxyProvider2
|
||||||
✔️ ProxyProvider3
|
✅ ProxyProvider3
|
||||||
✔️ ProxyProvider4
|
✅ ProxyProvider4
|
||||||
✔️ ProxyProvider5
|
✅ ProxyProvider5
|
||||||
✔️ ProxyProvider6
|
✅ ProxyProvider6
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s11" href="#r0s11">test/reassemble_test.dart</a>
|
### ✅ <a id="user-content-r0s11" href="#r0s11">test/reassemble_test.dart</a>
|
||||||
```
|
```
|
||||||
✔️ ReassembleHandler
|
✅ ReassembleHandler
|
||||||
✔️ unevaluated create
|
✅ unevaluated create
|
||||||
✔️ unevaluated create
|
✅ unevaluated create
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s12" href="#r0s12">test/selector_test.dart</a>
|
### ✅ <a id="user-content-r0s12" href="#r0s12">test/selector_test.dart</a>
|
||||||
```
|
```
|
||||||
✔️ asserts that builder/selector are not null
|
✅ asserts that builder/selector are not null
|
||||||
✔️ Deep compare maps by default
|
✅ Deep compare maps by default
|
||||||
✔️ Deep compare iterables by default
|
✅ Deep compare iterables by default
|
||||||
✔️ Deep compare sets by default
|
✅ Deep compare sets by default
|
||||||
✔️ Deep compare lists by default
|
✅ Deep compare lists by default
|
||||||
✔️ custom shouldRebuid
|
✅ custom shouldRebuid
|
||||||
✔️ passes `child` and `key`
|
✅ passes `child` and `key`
|
||||||
✔️ calls builder if the callback changes
|
✅ calls builder if the callback changes
|
||||||
✔️ works with MultiProvider
|
✅ works with MultiProvider
|
||||||
✔️ don't call builder again if it rebuilds but selector returns the same thing
|
✅ don't call builder again if it rebuilds but selector returns the same thing
|
||||||
✔️ call builder again if it rebuilds abd selector returns the a different variable
|
✅ call builder again if it rebuilds abd selector returns the a different variable
|
||||||
✔️ Selector
|
✅ Selector
|
||||||
✔️ Selector2
|
✅ Selector2
|
||||||
✔️ Selector3
|
✅ Selector3
|
||||||
✔️ Selector4
|
✅ Selector4
|
||||||
✔️ Selector5
|
✅ Selector5
|
||||||
✔️ Selector6
|
✅ Selector6
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s13" href="#r0s13">test/stateful_provider_test.dart</a>
|
### ✅ <a id="user-content-r0s13" href="#r0s13">test/stateful_provider_test.dart</a>
|
||||||
```
|
```
|
||||||
✔️ asserts
|
✅ asserts
|
||||||
✔️ works with MultiProvider
|
✅ works with MultiProvider
|
||||||
✔️ calls create only once
|
✅ calls create only once
|
||||||
✔️ dispose
|
✅ dispose
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s14" href="#r0s14">test/stream_provider_test.dart</a>
|
### ✅ <a id="user-content-r0s14" href="#r0s14">test/stream_provider_test.dart</a>
|
||||||
```
|
```
|
||||||
✔️ works with MultiProvider
|
✅ works with MultiProvider
|
||||||
✔️ transition from stream to stream preserve state
|
✅ transition from stream to stream preserve state
|
||||||
✔️ throws if stream has error and catchError is missing
|
✅ throws if stream has error and catchError is missing
|
||||||
✔️ calls catchError if present and stream has error
|
✅ calls catchError if present and stream has error
|
||||||
✔️ works with null
|
✅ works with null
|
||||||
✔️ StreamProvider() crashes if builder is null
|
✅ StreamProvider() crashes if builder is null
|
||||||
StreamProvider()
|
StreamProvider()
|
||||||
✔️ create and dispose stream with builder
|
✅ create and dispose stream with builder
|
||||||
✔️ crashes if builder is null
|
✅ crashes if builder is null
|
||||||
```
|
```
|
||||||
### ❌ <a id="user-content-r0s15" href="#r0s15">test/value_listenable_provider_test.dart</a>
|
### ❌ <a id="user-content-r0s15" href="#r0s15">test/value_listenable_provider_test.dart</a>
|
||||||
```
|
```
|
||||||
valueListenableProvider
|
valueListenableProvider
|
||||||
✔️ rebuilds when value change
|
✅ rebuilds when value change
|
||||||
✔️ don't rebuild dependents by default
|
✅ don't rebuild dependents by default
|
||||||
✔️ pass keys
|
✅ pass keys
|
||||||
✔️ don't listen again if stream instance doesn't change
|
✅ don't listen again if stream instance doesn't change
|
||||||
❌ pass updateShouldNotify
|
❌ pass updateShouldNotify
|
||||||
The following TestFailure object was thrown running a test:
|
The following TestFailure object was thrown running a test:
|
||||||
Expected: <2>
|
Expected: <2>
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
**2** tests were completed in **116ms** with **0** passed, **1** failed and **1** skipped.
|
**2** tests were completed in **116ms** with **0** passed, **1** failed and **1** skipped.
|
||||||
|Test suite|Passed|Failed|Skipped|Time|
|
|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>
|
### ❌ <a id="user-content-r0s0" href="#r0s0">org.apache.pulsar.AddMissingPatchVersionTest</a>
|
||||||
```
|
```
|
||||||
✖️ testVersionStrings
|
⚪ testVersionStrings
|
||||||
❌ testVersionStrings
|
❌ testVersionStrings
|
||||||
java.lang.AssertionError: expected [1.2.1] but found [1.2.0]
|
java.lang.AssertionError: expected [1.2.1] but found [1.2.0]
|
||||||
```
|
```
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,136 +1,136 @@
|
|||||||

|

|
||||||
## ✔️ <a id="user-content-r0" href="#r0">fixtures/external/SilentNotes.trx</a>
|
## ✅ <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.
|
**79** tests were completed in **1s** with **67** passed, **0** failed and **12** skipped.
|
||||||
|Test suite|Passed|Failed|Skipped|Time|
|
|Test suite|Passed|Failed|Skipped|Time|
|
||||||
|:---|---:|---:|---:|---:|
|
|:---|---:|---:|---:|---:|
|
||||||
|[VanillaCloudStorageClientTest.CloudStorageCredentialsTest](#r0s0)|6✔️|||30ms|
|
|[VanillaCloudStorageClientTest.CloudStorageCredentialsTest](#r0s0)|6✅|||30ms|
|
||||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest](#r0s1)|2✔️||3✖️|101ms|
|
|[VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest](#r0s1)|2✅||3⚪|101ms|
|
||||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest](#r0s2)|4✔️||3✖️|166ms|
|
|[VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest](#r0s2)|4✅||3⚪|166ms|
|
||||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest](#r0s3)|2✔️|||7ms|
|
|[VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest](#r0s3)|2✅|||7ms|
|
||||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest](#r0s4)|1✔️||3✖️|40ms|
|
|[VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest](#r0s4)|1✅||3⚪|40ms|
|
||||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest](#r0s5)|1✔️||3✖️|15ms|
|
|[VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest](#r0s5)|1✅||3⚪|15ms|
|
||||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest](#r0s6)|5✔️|||16ms|
|
|[VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest](#r0s6)|5✅|||16ms|
|
||||||
|[VanillaCloudStorageClientTest.CloudStorageTokenTest](#r0s7)|9✔️|||0ms|
|
|[VanillaCloudStorageClientTest.CloudStorageTokenTest](#r0s7)|9✅|||0ms|
|
||||||
|[VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest](#r0s8)|3✔️|||3ms|
|
|[VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest](#r0s8)|3✅|||3ms|
|
||||||
|[VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest](#r0s9)|9✔️|||12ms|
|
|[VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest](#r0s9)|9✅|||12ms|
|
||||||
|[VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest](#r0s10)|5✔️|||13ms|
|
|[VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest](#r0s10)|5✅|||13ms|
|
||||||
|[VanillaCloudStorageClientTest.SecureStringExtensionsTest](#r0s11)|7✔️|||0ms|
|
|[VanillaCloudStorageClientTest.SecureStringExtensionsTest](#r0s11)|7✅|||0ms|
|
||||||
|[VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest](#r0s12)|13✔️|||43ms|
|
|[VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest](#r0s12)|13✅|||43ms|
|
||||||
### ✔️ <a id="user-content-r0s0" href="#r0s0">VanillaCloudStorageClientTest.CloudStorageCredentialsTest</a>
|
### ✅ <a id="user-content-r0s0" href="#r0s0">VanillaCloudStorageClientTest.CloudStorageCredentialsTest</a>
|
||||||
```
|
```
|
||||||
✔️ AreEqualWorksWithDifferentPassword
|
✅ AreEqualWorksWithDifferentPassword
|
||||||
✔️ AreEqualWorksWithSameContent
|
✅ AreEqualWorksWithSameContent
|
||||||
✔️ CorrectlyConvertsSecureStringToString
|
✅ CorrectlyConvertsSecureStringToString
|
||||||
✔️ CorrectlyConvertsStringToSecureString
|
✅ CorrectlyConvertsStringToSecureString
|
||||||
✔️ ValidateAcceptsValidCredentials
|
✅ ValidateAcceptsValidCredentials
|
||||||
✔️ ValidateRejectsInvalidCredentials
|
✅ ValidateRejectsInvalidCredentials
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s1" href="#r0s1">VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest</a>
|
### ✅ <a id="user-content-r0s1" href="#r0s1">VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest</a>
|
||||||
```
|
```
|
||||||
✔️ FileLifecycleWorks
|
✅ FileLifecycleWorks
|
||||||
✖️ ReallyDoFetchToken
|
⚪ ReallyDoFetchToken
|
||||||
✖️ ReallyDoOpenAuthorizationPageInBrowser
|
⚪ ReallyDoOpenAuthorizationPageInBrowser
|
||||||
✖️ ReallyDoRefreshToken
|
⚪ ReallyDoRefreshToken
|
||||||
✔️ ThrowsAccessDeniedExceptionWithInvalidToken
|
✅ ThrowsAccessDeniedExceptionWithInvalidToken
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s2" href="#r0s2">VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest</a>
|
### ✅ <a id="user-content-r0s2" href="#r0s2">VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest</a>
|
||||||
```
|
```
|
||||||
✔️ FileLifecycleWorks
|
✅ FileLifecycleWorks
|
||||||
✔️ SanitizeCredentials_ChangesInvalidPrefix
|
✅ SanitizeCredentials_ChangesInvalidPrefix
|
||||||
✔️ SecureSslConnectionWorks
|
✅ SecureSslConnectionWorks
|
||||||
✔️ ThrowsWithHttpInsteadOfFtp
|
✅ ThrowsWithHttpInsteadOfFtp
|
||||||
✖️ ThrowsWithInvalidPassword
|
⚪ ThrowsWithInvalidPassword
|
||||||
✖️ ThrowsWithInvalidUrl
|
⚪ ThrowsWithInvalidUrl
|
||||||
✖️ ThrowsWithInvalidUsername
|
⚪ ThrowsWithInvalidUsername
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s3" href="#r0s3">VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest</a>
|
### ✅ <a id="user-content-r0s3" href="#r0s3">VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest</a>
|
||||||
```
|
```
|
||||||
✔️ ChoosesCorrectUrlForGmxComEmail
|
✅ ChoosesCorrectUrlForGmxComEmail
|
||||||
✔️ ChoosesCorrectUrlForGmxNetEmail
|
✅ ChoosesCorrectUrlForGmxNetEmail
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s4" href="#r0s4">VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest</a>
|
### ✅ <a id="user-content-r0s4" href="#r0s4">VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest</a>
|
||||||
```
|
```
|
||||||
✔️ FileLifecycleWorks
|
✅ FileLifecycleWorks
|
||||||
✖️ ReallyDoFetchToken
|
⚪ ReallyDoFetchToken
|
||||||
✖️ ReallyDoOpenAuthorizationPageInBrowser
|
⚪ ReallyDoOpenAuthorizationPageInBrowser
|
||||||
✖️ ReallyDoRefreshToken
|
⚪ ReallyDoRefreshToken
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s5" href="#r0s5">VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest</a>
|
### ✅ <a id="user-content-r0s5" href="#r0s5">VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest</a>
|
||||||
```
|
```
|
||||||
✔️ FileLifecycleWorks
|
✅ FileLifecycleWorks
|
||||||
✖️ ReallyDoFetchToken
|
⚪ ReallyDoFetchToken
|
||||||
✖️ ReallyDoOpenAuthorizationPageInBrowser
|
⚪ ReallyDoOpenAuthorizationPageInBrowser
|
||||||
✖️ ReallyDoRefreshToken
|
⚪ ReallyDoRefreshToken
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s6" href="#r0s6">VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest</a>
|
### ✅ <a id="user-content-r0s6" href="#r0s6">VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest</a>
|
||||||
```
|
```
|
||||||
✔️ FileLifecycleWorks
|
✅ FileLifecycleWorks
|
||||||
✔️ ParseGmxWebdavResponseCorrectly
|
✅ ParseGmxWebdavResponseCorrectly
|
||||||
✔️ ParseStratoWebdavResponseCorrectly
|
✅ ParseStratoWebdavResponseCorrectly
|
||||||
✔️ ThrowsWithInvalidPath
|
✅ ThrowsWithInvalidPath
|
||||||
✔️ ThrowsWithInvalidUsername
|
✅ ThrowsWithInvalidUsername
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s7" href="#r0s7">VanillaCloudStorageClientTest.CloudStorageTokenTest</a>
|
### ✅ <a id="user-content-r0s7" href="#r0s7">VanillaCloudStorageClientTest.CloudStorageTokenTest</a>
|
||||||
```
|
```
|
||||||
✔️ AreEqualWorksWithNullDate
|
✅ AreEqualWorksWithNullDate
|
||||||
✔️ AreEqualWorksWithSameContent
|
✅ AreEqualWorksWithSameContent
|
||||||
✔️ NeedsRefreshReturnsFalseForTokenFlow
|
✅ NeedsRefreshReturnsFalseForTokenFlow
|
||||||
✔️ NeedsRefreshReturnsFalseIfNotExpired
|
✅ NeedsRefreshReturnsFalseIfNotExpired
|
||||||
✔️ NeedsRefreshReturnsTrueIfExpired
|
✅ NeedsRefreshReturnsTrueIfExpired
|
||||||
✔️ NeedsRefreshReturnsTrueIfNoExpirationDate
|
✅ NeedsRefreshReturnsTrueIfNoExpirationDate
|
||||||
✔️ SetExpiryDateBySecondsWorks
|
✅ SetExpiryDateBySecondsWorks
|
||||||
✔️ SetExpiryDateBySecondsWorksWithNull
|
✅ SetExpiryDateBySecondsWorksWithNull
|
||||||
✔️ SetExpiryDateBySecondsWorksWithVeryShortPeriod
|
✅ SetExpiryDateBySecondsWorksWithVeryShortPeriod
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s8" href="#r0s8">VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest</a>
|
### ✅ <a id="user-content-r0s8" href="#r0s8">VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest</a>
|
||||||
```
|
```
|
||||||
✔️ ParsesAllErrorCodesCorrectly
|
✅ ParsesAllErrorCodesCorrectly
|
||||||
✔️ ParsesNullErrorCodeCorrectly
|
✅ ParsesNullErrorCodeCorrectly
|
||||||
✔️ ParsesUnknownErrorCodeCorrectly
|
✅ ParsesUnknownErrorCodeCorrectly
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s9" href="#r0s9">VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest</a>
|
### ✅ <a id="user-content-r0s9" href="#r0s9">VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest</a>
|
||||||
```
|
```
|
||||||
✔️ BuildAuthorizationRequestUrlEscapesParameters
|
✅ BuildAuthorizationRequestUrlEscapesParameters
|
||||||
✔️ BuildAuthorizationRequestUrlLeavesOutOptionalParameters
|
✅ BuildAuthorizationRequestUrlLeavesOutOptionalParameters
|
||||||
✔️ BuildAuthorizationRequestUrlThrowsWithMissingRedirectUrlForTokenFlow
|
✅ BuildAuthorizationRequestUrlThrowsWithMissingRedirectUrlForTokenFlow
|
||||||
✔️ BuildAuthorizationRequestUrlUsesAllParameters
|
✅ BuildAuthorizationRequestUrlUsesAllParameters
|
||||||
✔️ BuildAuthorizationRequestUrlUsesCodeVerifier
|
✅ BuildAuthorizationRequestUrlUsesCodeVerifier
|
||||||
✔️ ParseRealWorldDropboxRejectResponse
|
✅ ParseRealWorldDropboxRejectResponse
|
||||||
✔️ ParseRealWorldDropboxSuccessResponse
|
✅ ParseRealWorldDropboxSuccessResponse
|
||||||
✔️ ParseRealWorldGoogleRejectResponse
|
✅ ParseRealWorldGoogleRejectResponse
|
||||||
✔️ ParseRealWorldGoogleSuccessResponse
|
✅ ParseRealWorldGoogleSuccessResponse
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s10" href="#r0s10">VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest</a>
|
### ✅ <a id="user-content-r0s10" href="#r0s10">VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest</a>
|
||||||
```
|
```
|
||||||
✔️ BuildOAuth2AuthorizationRequestUrlWorks
|
✅ BuildOAuth2AuthorizationRequestUrlWorks
|
||||||
✔️ FetchTokenCanInterpretGoogleResponse
|
✅ FetchTokenCanInterpretGoogleResponse
|
||||||
✔️ FetchTokenReturnsNullForDeniedAccess
|
✅ FetchTokenReturnsNullForDeniedAccess
|
||||||
✔️ FetchTokenThrowsWithWrongState
|
✅ FetchTokenThrowsWithWrongState
|
||||||
✔️ RefreshTokenCanInterpretGoogleResponse
|
✅ RefreshTokenCanInterpretGoogleResponse
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s11" href="#r0s11">VanillaCloudStorageClientTest.SecureStringExtensionsTest</a>
|
### ✅ <a id="user-content-r0s11" href="#r0s11">VanillaCloudStorageClientTest.SecureStringExtensionsTest</a>
|
||||||
```
|
```
|
||||||
✔️ AreEqualsWorksCorrectly
|
✅ AreEqualsWorksCorrectly
|
||||||
✔️ CorrectlyConvertsSecureStringToString
|
✅ CorrectlyConvertsSecureStringToString
|
||||||
✔️ CorrectlyConvertsSecureStringToUnicodeBytes
|
✅ CorrectlyConvertsSecureStringToUnicodeBytes
|
||||||
✔️ CorrectlyConvertsSecureStringToUtf8Bytes
|
✅ CorrectlyConvertsSecureStringToUtf8Bytes
|
||||||
✔️ CorrectlyConvertsStringToSecureString
|
✅ CorrectlyConvertsStringToSecureString
|
||||||
✔️ CorrectlyConvertsUnicodeBytesToSecureString
|
✅ CorrectlyConvertsUnicodeBytesToSecureString
|
||||||
✔️ CorrectlyConvertsUtf8BytesToSecureString
|
✅ CorrectlyConvertsUtf8BytesToSecureString
|
||||||
```
|
```
|
||||||
### ✔️ <a id="user-content-r0s12" href="#r0s12">VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest</a>
|
### ✅ <a id="user-content-r0s12" href="#r0s12">VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest</a>
|
||||||
```
|
```
|
||||||
✔️ DecryptAfterDesrializationCanReadAllPropertiesBack
|
✅ DecryptAfterDesrializationCanReadAllPropertiesBack
|
||||||
✔️ DecryptAfterDesrializationRespectsNullProperties
|
✅ DecryptAfterDesrializationRespectsNullProperties
|
||||||
✔️ EncryptBeforeSerializationProtectsAllNecessaryProperties
|
✅ EncryptBeforeSerializationProtectsAllNecessaryProperties
|
||||||
✔️ EncryptBeforeSerializationRespectsNullProperties
|
✅ EncryptBeforeSerializationRespectsNullProperties
|
||||||
✔️ SerializedDatacontractCanBeReadBack
|
✅ SerializedDatacontractCanBeReadBack
|
||||||
✔️ SerializedDatacontractDoesNotContainNullProperties
|
✅ SerializedDatacontractDoesNotContainNullProperties
|
||||||
✔️ SerializedDatacontractDoesNotContainPlaintextData
|
✅ SerializedDatacontractDoesNotContainPlaintextData
|
||||||
✔️ SerializedJsonCanBeReadBack
|
✅ SerializedJsonCanBeReadBack
|
||||||
✔️ SerializedJsonDoesNotContainNullProperties
|
✅ SerializedJsonDoesNotContainNullProperties
|
||||||
✔️ SerializedJsonDoesNotContainPlaintextData
|
✅ SerializedJsonDoesNotContainPlaintextData
|
||||||
✔️ SerializedXmlCanBeReadBack
|
✅ SerializedXmlCanBeReadBack
|
||||||
✔️ SerializedXmlDoesNotContainNullProperties
|
✅ SerializedXmlDoesNotContainNullProperties
|
||||||
✔️ SerializedXmlDoesNotContainPlaintextData
|
✅ SerializedXmlDoesNotContainPlaintextData
|
||||||
```
|
```
|
||||||
5
__tests__/fixtures/empty/jest-junit-empty-testsuite.xml
Normal file
5
__tests__/fixtures/empty/jest-junit-empty-testsuite.xml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<testsuites name="jest tests" tests="0" failures="0" errors="0" time="11.299">
|
||||||
|
<testsuite name="__tests__\main.test.js" errors="0" failures="0" skipped="0" timestamp="2020-10-27T21:39:41" time="0.486" tests="0">
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
2
__tests__/fixtures/external/java/empty_failures.xml
vendored
Normal file
2
__tests__/fixtures/external/java/empty_failures.xml
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<testsuites name="my_package.test_foo" tests="3" failures="1" errors="0" time="6.79"><testsuite name="my_package.test_foo.launch_tests" tests="3" failures="1" errors="0" skipped="0" time="6.79"><testcase classname="my_package.TestFoo" name="test_normal_case" time="2.172" /><testcase classname="my_package.TestFoo" name="test_other_case" time="4.558"><failure message="Traceback (most recent call last): File "/home/redacted/test_foo.py", line 183, in test_other_case self.assertFalse(True) AssertionError: True is not false " /></testcase><testcase classname="my_package.TestFoo" name="test_yet_another_case" time="0.06" /></testsuite></testsuites>
|
||||||
@@ -72,4 +72,22 @@ describe('java-junit tests', () => {
|
|||||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||||
fs.writeFileSync(outputPath, report)
|
fs.writeFileSync(outputPath, report)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('parses empty failures in test results', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'empty_failures.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const trackedFiles: string[] = []
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new JavaJunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
|
||||||
|
expect(result.result === 'failed')
|
||||||
|
expect(result.failed === 1)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
75
__tests__/java-stack-trace-element-parser.test.ts
Normal file
75
__tests__/java-stack-trace-element-parser.test.ts
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
import {parseStackTraceElement} from '../src/parsers/java-junit/java-stack-trace-element-parser'
|
||||||
|
|
||||||
|
describe('parseStackTraceLine tests', () => {
|
||||||
|
it('empty line is not parsed', async () => {
|
||||||
|
const line = ''
|
||||||
|
expect(parseStackTraceElement(line)).toBe(undefined)
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('java class', () => {
|
||||||
|
it('simple', async () => {
|
||||||
|
const line =
|
||||||
|
'at org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings(AddMissingPatchVersionTest.java:29)'
|
||||||
|
expect(parseStackTraceElement(line)).toEqual({
|
||||||
|
tracePath: 'org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings',
|
||||||
|
fileName: 'AddMissingPatchVersionTest.java',
|
||||||
|
lineStr: '29'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('inner class', async () => {
|
||||||
|
const line = 'at com.foo.Main$Inner.run(Main.java:29)'
|
||||||
|
expect(parseStackTraceElement(line)).toEqual({
|
||||||
|
tracePath: 'com.foo.Main$Inner.run',
|
||||||
|
fileName: 'Main.java',
|
||||||
|
lineStr: '29'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('starts with whitespaces', async () => {
|
||||||
|
const line =
|
||||||
|
' \tat org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings(AddMissingPatchVersionTest.java:29)'
|
||||||
|
expect(parseStackTraceElement(line)).toEqual({
|
||||||
|
tracePath: 'org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings',
|
||||||
|
fileName: 'AddMissingPatchVersionTest.java',
|
||||||
|
lineStr: '29'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('since Java 9', () => {
|
||||||
|
it('with classloader and module', async () => {
|
||||||
|
// Based on Java 9 StackTraceElement.toString() Doc: https://docs.oracle.com/javase/9/docs/api/java/lang/StackTraceElement.html#toString--
|
||||||
|
const line = 'at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)'
|
||||||
|
expect(parseStackTraceElement(line)).toEqual({
|
||||||
|
classLoader: 'com.foo.loader',
|
||||||
|
moduleNameAndVersion: 'foo@9.0',
|
||||||
|
tracePath: 'com.foo.Main.run',
|
||||||
|
fileName: 'Main.java',
|
||||||
|
lineStr: '101'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('with classloader', async () => {
|
||||||
|
const line = 'at com.foo.loader//com.foo.Main.run(Main.java:101)'
|
||||||
|
expect(parseStackTraceElement(line)).toEqual({
|
||||||
|
classLoader: 'com.foo.loader',
|
||||||
|
moduleNameAndVersion: undefined,
|
||||||
|
tracePath: 'com.foo.Main.run',
|
||||||
|
fileName: 'Main.java',
|
||||||
|
lineStr: '101'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('Kotlin class', () => {
|
||||||
|
it('method name containing whitespaces', async () => {
|
||||||
|
const line = 'at com.foo.Main.method with whitespaces(Main.kt:18)'
|
||||||
|
expect(parseStackTraceElement(line)).toEqual({
|
||||||
|
tracePath: 'com.foo.Main.method with whitespaces',
|
||||||
|
fileName: 'Main.kt',
|
||||||
|
lineStr: '18'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -7,7 +7,7 @@ import {getReport} from '../src/report/get-report'
|
|||||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||||
|
|
||||||
describe('jest-junit tests', () => {
|
describe('jest-junit tests', () => {
|
||||||
it('produces empty test run result when there are no test cases', async () => {
|
it('produces empty test run result when there are no test cases in the testsuites element', async () => {
|
||||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'jest-junit.xml')
|
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'jest-junit.xml')
|
||||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
@@ -23,6 +23,22 @@ describe('jest-junit tests', () => {
|
|||||||
expect(result.result).toBe('success')
|
expect(result.result).toBe('success')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('produces empty test run result when there are no test cases in a nested testsuite element', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'jest-junit-empty-testsuite.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new JestJunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
expect(result.tests).toBe(0)
|
||||||
|
expect(result.result).toBe('success')
|
||||||
|
})
|
||||||
|
|
||||||
it('report from ./reports/jest test results matches snapshot', async () => {
|
it('report from ./reports/jest test results matches snapshot', async () => {
|
||||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||||
const outputPath = path.join(__dirname, '__outputs__', 'jest-junit.md')
|
const outputPath = path.join(__dirname, '__outputs__', 'jest-junit.md')
|
||||||
|
|||||||
16
action.yml
16
action.yml
@@ -11,7 +11,7 @@ inputs:
|
|||||||
required: true
|
required: true
|
||||||
path:
|
path:
|
||||||
description: |
|
description: |
|
||||||
Coma separated list of paths to test results
|
Comma-separated list of paths to test results
|
||||||
Supports wildcards via [fast-glob](https://github.com/mrmlnc/fast-glob)
|
Supports wildcards via [fast-glob](https://github.com/mrmlnc/fast-glob)
|
||||||
All matched result files must be of same format
|
All matched result files must be of same format
|
||||||
required: true
|
required: true
|
||||||
@@ -37,7 +37,7 @@ inputs:
|
|||||||
Limits which test suites are listed. Supported options:
|
Limits which test suites are listed. Supported options:
|
||||||
- all
|
- all
|
||||||
- only-failed
|
- only-failed
|
||||||
required: true
|
required: false
|
||||||
default: 'all'
|
default: 'all'
|
||||||
list-tests:
|
list-tests:
|
||||||
description: |
|
description: |
|
||||||
@@ -45,16 +45,20 @@ inputs:
|
|||||||
- all
|
- all
|
||||||
- only-failed
|
- only-failed
|
||||||
- none
|
- none
|
||||||
required: true
|
required: false
|
||||||
default: 'all'
|
default: 'all'
|
||||||
max-annotations:
|
max-annotations:
|
||||||
description: |
|
description: |
|
||||||
Limits number of created annotations with error message and stack trace captured during test execution.
|
Limits number of created annotations with error message and stack trace captured during test execution.
|
||||||
Must be less or equal to 50.
|
Must be less or equal to 50.
|
||||||
required: true
|
required: false
|
||||||
default: '10'
|
default: '10'
|
||||||
fail-on-error:
|
fail-on-error:
|
||||||
description: Set this action as failed if test report contain any failed test
|
description: Set this action as failed if test report contain any failed test
|
||||||
|
required: false
|
||||||
|
default: 'true'
|
||||||
|
fail-on-empty:
|
||||||
|
description: Set this action as failed if no test results were found
|
||||||
required: true
|
required: true
|
||||||
default: 'true'
|
default: 'true'
|
||||||
working-directory:
|
working-directory:
|
||||||
@@ -85,6 +89,10 @@ outputs:
|
|||||||
description: Count of skipped tests
|
description: Count of skipped tests
|
||||||
time:
|
time:
|
||||||
description: Test execution time [ms]
|
description: Test execution time [ms]
|
||||||
|
url:
|
||||||
|
description: Check run URL
|
||||||
|
url_html:
|
||||||
|
description: Check run URL HTML
|
||||||
runs:
|
runs:
|
||||||
using: 'node16'
|
using: 'node16'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
|
|||||||
1136
dist/index.js
generated
vendored
1136
dist/index.js
generated
vendored
File diff suppressed because it is too large
Load Diff
1
dist/index.js.map
generated
vendored
1
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
@@ -696,31 +696,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
compress-brotli
|
|
||||||
MIT
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright © 2019 Kiko Beats <josefrancisco.verdu@gmail.com> (kikobeats.com)
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
decompress-response
|
decompress-response
|
||||||
MIT
|
MIT
|
||||||
MIT License
|
MIT License
|
||||||
|
|||||||
7984
package-lock.json
generated
7984
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
11
package.json
11
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "test-check",
|
"name": "test-check",
|
||||||
"version": "0.0.0",
|
"version": "1.7.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Presents test results from popular testing frameworks as Github check run",
|
"description": "Presents test results from popular testing frameworks as Github check run",
|
||||||
"main": "lib/main.js",
|
"main": "lib/main.js",
|
||||||
@@ -9,7 +9,8 @@
|
|||||||
"format": "prettier --write **/*.ts",
|
"format": "prettier --write **/*.ts",
|
||||||
"format-check": "prettier --check **/*.ts",
|
"format-check": "prettier --check **/*.ts",
|
||||||
"lint": "eslint src/**/*.ts",
|
"lint": "eslint src/**/*.ts",
|
||||||
"package": "ncc build --source-map --license licenses.txt",
|
"package": "ncc build --license licenses.txt && eolConverter lf 'dist/*'",
|
||||||
|
"version": "npm run build && npm run package && git add dist/*",
|
||||||
"test": "jest --ci --reporters=default --reporters=jest-junit",
|
"test": "jest --ci --reporters=default --reporters=jest-junit",
|
||||||
"all": "npm run build && npm run format && npm run lint && npm run package && npm test",
|
"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\"",
|
"dart-fixture": "cd \"reports/dart\" && dart test --file-reporter=\"json:../../__tests__/fixtures/dart-json.json\"",
|
||||||
@@ -37,7 +38,7 @@
|
|||||||
"fast-glob": "^3.2.5",
|
"fast-glob": "^3.2.5",
|
||||||
"got": "^11.8.2",
|
"got": "^11.8.2",
|
||||||
"picomatch": "^2.2.2",
|
"picomatch": "^2.2.2",
|
||||||
"xml2js": "^0.4.23"
|
"xml2js": "^0.5.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@octokit/types": "^7.1.0",
|
"@octokit/types": "^7.1.0",
|
||||||
@@ -52,16 +53,18 @@
|
|||||||
"@typescript-eslint/eslint-plugin": "^5.33.1",
|
"@typescript-eslint/eslint-plugin": "^5.33.1",
|
||||||
"@typescript-eslint/parser": "^5.33.1",
|
"@typescript-eslint/parser": "^5.33.1",
|
||||||
"@vercel/ncc": "^0.34.0",
|
"@vercel/ncc": "^0.34.0",
|
||||||
|
"eol-converter-cli": "^1.0.8",
|
||||||
"eslint": "^8.22.0",
|
"eslint": "^8.22.0",
|
||||||
"eslint-import-resolver-typescript": "^3.4.2",
|
"eslint-import-resolver-typescript": "^3.4.2",
|
||||||
"eslint-plugin-github": "^4.1.2",
|
"eslint-plugin-github": "^4.1.2",
|
||||||
"eslint-plugin-import": "^2.26.0",
|
"eslint-plugin-import": "^2.26.0",
|
||||||
"eslint-plugin-jest": "^26.8.3",
|
"eslint-plugin-jest": "^26.8.3",
|
||||||
|
"eslint-plugin-prettier": "^5.0.0",
|
||||||
"jest": "^28.1.3",
|
"jest": "^28.1.3",
|
||||||
"jest-circus": "^28.1.3",
|
"jest-circus": "^28.1.3",
|
||||||
"jest-junit": "^14.0.0",
|
"jest-junit": "^14.0.0",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"prettier": "^2.7.1",
|
"prettier": "^3.0.0",
|
||||||
"ts-jest": "^28.0.8",
|
"ts-jest": "^28.0.8",
|
||||||
"typescript": "^4.7.4"
|
"typescript": "^4.7.4"
|
||||||
},
|
},
|
||||||
|
|||||||
47
reports/jest/package-lock.json
generated
47
reports/jest/package-lock.json
generated
@@ -804,9 +804,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ansi-styles": {
|
"ansi-styles": {
|
||||||
@@ -1343,9 +1343,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"decode-uri-component": {
|
"decode-uri-component": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
|
||||||
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
|
"integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"deep-is": {
|
"deep-is": {
|
||||||
@@ -2546,9 +2546,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
|
||||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
"integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"strip-ansi": {
|
"strip-ansi": {
|
||||||
@@ -2908,13 +2908,10 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"json5": {
|
"json5": {
|
||||||
"version": "2.1.3",
|
"version": "2.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
||||||
"integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
|
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"requires": {
|
|
||||||
"minimist": "^1.2.5"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"jsprim": {
|
"jsprim": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
@@ -3080,9 +3077,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "1.2.5",
|
"version": "1.2.8",
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
||||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"mixin-deep": {
|
"mixin-deep": {
|
||||||
@@ -3486,9 +3483,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"qs": {
|
"qs": {
|
||||||
"version": "6.5.2",
|
"version": "6.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
|
||||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
"integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"react-is": {
|
"react-is": {
|
||||||
@@ -4660,9 +4657,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ws": {
|
"ws": {
|
||||||
"version": "7.3.1",
|
"version": "7.5.9",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
|
||||||
"integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==",
|
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"xml": {
|
"xml": {
|
||||||
|
|||||||
24
reports/mocha/package-lock.json
generated
24
reports/mocha/package-lock.json
generated
@@ -17,9 +17,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
|
||||||
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
|
"integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ansi-styles": {
|
"ansi-styles": {
|
||||||
@@ -139,9 +139,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
@@ -639,9 +639,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
@@ -700,9 +700,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ import {FileContent, InputProvider, ReportInput} from './input-provider'
|
|||||||
import {listFiles} from '../utils/git'
|
import {listFiles} from '../utils/git'
|
||||||
|
|
||||||
export class LocalFileProvider implements InputProvider {
|
export class LocalFileProvider implements InputProvider {
|
||||||
constructor(readonly name: string, readonly pattern: string[]) {}
|
constructor(
|
||||||
|
readonly name: string,
|
||||||
|
readonly pattern: string[]
|
||||||
|
) {}
|
||||||
|
|
||||||
async load(): Promise<ReportInput> {
|
async load(): Promise<ReportInput> {
|
||||||
const result: FileContent[] = []
|
const result: FileContent[] = []
|
||||||
|
|||||||
22
src/main.ts
22
src/main.ts
@@ -40,6 +40,7 @@ class TestReporter {
|
|||||||
readonly listTests = core.getInput('list-tests', {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 maxAnnotations = parseInt(core.getInput('max-annotations', {required: true}))
|
||||||
readonly failOnError = core.getInput('fail-on-error', {required: true}) === '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 workDirInput = core.getInput('working-directory', {required: false})
|
||||||
readonly onlySummary = core.getInput('only-summary', {required: false}) === 'true'
|
readonly onlySummary = core.getInput('only-summary', {required: false}) === 'true'
|
||||||
readonly token = core.getInput('token', {required: true})
|
readonly token = core.getInput('token', {required: true})
|
||||||
@@ -91,10 +92,10 @@ class TestReporter {
|
|||||||
: new LocalFileProvider(this.name, pattern)
|
: new LocalFileProvider(this.name, pattern)
|
||||||
|
|
||||||
const parseErrors = this.maxAnnotations > 0
|
const parseErrors = this.maxAnnotations > 0
|
||||||
const trackedFiles = await inputProvider.listTrackedFiles()
|
const trackedFiles = parseErrors ? await inputProvider.listTrackedFiles() : []
|
||||||
const workDir = this.artifact ? undefined : normalizeDirPath(process.cwd(), true)
|
const workDir = this.artifact ? undefined : normalizeDirPath(process.cwd(), true)
|
||||||
|
|
||||||
core.info(`Found ${trackedFiles.length} files tracked by GitHub`)
|
if (parseErrors) core.info(`Found ${trackedFiles.length} files tracked by GitHub`)
|
||||||
|
|
||||||
const options: ParseOptions = {
|
const options: ParseOptions = {
|
||||||
workDir,
|
workDir,
|
||||||
@@ -135,7 +136,7 @@ class TestReporter {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (results.length === 0) {
|
if (results.length === 0 && this.failOnEmpty) {
|
||||||
core.setFailed(`No test report files were found`)
|
core.setFailed(`No test report files were found`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -147,11 +148,16 @@ class TestReporter {
|
|||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
core.info(`Processing test results for check run ${name}`)
|
||||||
const results: TestRunResult[] = []
|
const results: TestRunResult[] = []
|
||||||
for (const {file, content} of files) {
|
for (const {file, content} of files) {
|
||||||
core.info(`Processing test results from ${file}`)
|
try {
|
||||||
const tr = await parser.parse(file, content)
|
const tr = await parser.parse(file, content)
|
||||||
results.push(tr)
|
results.push(tr)
|
||||||
|
} catch (error) {
|
||||||
|
core.error(`Processing test results from ${file} failed`)
|
||||||
|
throw error
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
core.info(`Creating check run ${name}`)
|
core.info(`Creating check run ${name}`)
|
||||||
@@ -174,7 +180,7 @@ class TestReporter {
|
|||||||
core.info('Creating annotations')
|
core.info('Creating annotations')
|
||||||
const annotations = getAnnotations(results, this.maxAnnotations)
|
const annotations = getAnnotations(results, this.maxAnnotations)
|
||||||
|
|
||||||
const isFailed = results.some(tr => tr.result === 'failed')
|
const isFailed = this.failOnError && results.some(tr => tr.result === 'failed')
|
||||||
const conclusion = isFailed ? 'failure' : 'success'
|
const conclusion = isFailed ? 'failure' : 'success'
|
||||||
const icon = isFailed ? Icon.fail : Icon.success
|
const icon = isFailed ? Icon.fail : Icon.success
|
||||||
|
|
||||||
@@ -193,6 +199,8 @@ class TestReporter {
|
|||||||
core.info(`Check run create response: ${resp.status}`)
|
core.info(`Check run create response: ${resp.status}`)
|
||||||
core.info(`Check run URL: ${resp.data.url}`)
|
core.info(`Check run URL: ${resp.data.url}`)
|
||||||
core.info(`Check run HTML: ${resp.data.html_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
|
return results
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import {ParseOptions, TestParser} from '../../test-parser'
|
|||||||
import {parseStringPromise} from 'xml2js'
|
import {parseStringPromise} from 'xml2js'
|
||||||
|
|
||||||
import {JunitReport, SingleSuiteReport, TestCase, TestSuite} from './java-junit-types'
|
import {JunitReport, SingleSuiteReport, TestCase, TestSuite} from './java-junit-types'
|
||||||
|
import {parseStackTraceElement} from './java-stack-trace-element-parser'
|
||||||
import {normalizeFilePath} from '../../utils/path-utils'
|
import {normalizeFilePath} from '../../utils/path-utils'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@@ -128,10 +129,12 @@ export class JavaJunitParser implements TestParser {
|
|||||||
let filePath
|
let filePath
|
||||||
let line
|
let line
|
||||||
|
|
||||||
const src = this.exceptionThrowSource(details)
|
if (details != null) {
|
||||||
if (src) {
|
const src = this.exceptionThrowSource(details)
|
||||||
filePath = src.filePath
|
if (src) {
|
||||||
line = src.line
|
filePath = src.filePath
|
||||||
|
line = src.line
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -144,12 +147,11 @@ export class JavaJunitParser implements TestParser {
|
|||||||
|
|
||||||
private exceptionThrowSource(stackTrace: string): {filePath: string; line: number} | undefined {
|
private exceptionThrowSource(stackTrace: string): {filePath: string; line: number} | undefined {
|
||||||
const lines = stackTrace.split(/\r?\n/)
|
const lines = stackTrace.split(/\r?\n/)
|
||||||
const re = /^at (.*)\((.*):(\d+)\)$/
|
|
||||||
|
|
||||||
for (const str of lines) {
|
for (const str of lines) {
|
||||||
const match = str.match(re)
|
const stackTraceElement = parseStackTraceElement(str)
|
||||||
if (match !== null) {
|
if (stackTraceElement) {
|
||||||
const [_, tracePath, fileName, lineStr] = match
|
const {tracePath, fileName, lineStr} = stackTraceElement
|
||||||
const filePath = this.getFilePath(tracePath, fileName)
|
const filePath = this.getFilePath(tracePath, fileName)
|
||||||
if (filePath !== undefined) {
|
if (filePath !== undefined) {
|
||||||
const line = parseInt(lineStr)
|
const line = parseInt(lineStr)
|
||||||
|
|||||||
44
src/parsers/java-junit/java-stack-trace-element-parser.ts
Normal file
44
src/parsers/java-junit/java-stack-trace-element-parser.ts
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
export interface StackTraceElement {
|
||||||
|
classLoader: string | undefined
|
||||||
|
moduleNameAndVersion: string | undefined
|
||||||
|
tracePath: string
|
||||||
|
fileName: string
|
||||||
|
lineStr: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// classloader and module name are optional:
|
||||||
|
// at <CLASSLOADER>/<MODULE_NAME_AND_VERSION>/<FULLY_QUALIFIED_METHOD_NAME>(<FILE_NAME>:<LINE_NUMBER>)
|
||||||
|
// https://github.com/eclipse-openj9/openj9/issues/11452#issuecomment-754946992
|
||||||
|
const re = /^\s*at (\S+\/\S*\/)?(.*)\((.*):(\d+)\)$/
|
||||||
|
|
||||||
|
export function parseStackTraceElement(stackTraceLine: string): StackTraceElement | undefined {
|
||||||
|
const match = stackTraceLine.match(re)
|
||||||
|
if (match !== null) {
|
||||||
|
const [_, maybeClassLoaderAndModuleNameAndVersion, tracePath, fileName, lineStr] = match
|
||||||
|
const {classLoader, moduleNameAndVersion} = parseClassLoaderAndModule(maybeClassLoaderAndModuleNameAndVersion)
|
||||||
|
return {
|
||||||
|
classLoader,
|
||||||
|
moduleNameAndVersion,
|
||||||
|
tracePath,
|
||||||
|
fileName,
|
||||||
|
lineStr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseClassLoaderAndModule(maybeClassLoaderAndModuleNameAndVersion?: string): {
|
||||||
|
classLoader?: string
|
||||||
|
moduleNameAndVersion?: string
|
||||||
|
} {
|
||||||
|
if (maybeClassLoaderAndModuleNameAndVersion) {
|
||||||
|
const res = maybeClassLoaderAndModuleNameAndVersion.split('/')
|
||||||
|
const classLoader = res[0]
|
||||||
|
let moduleNameAndVersion: string | undefined = res[1]
|
||||||
|
if (moduleNameAndVersion === '') {
|
||||||
|
moduleNameAndVersion = undefined
|
||||||
|
}
|
||||||
|
return {classLoader, moduleNameAndVersion}
|
||||||
|
}
|
||||||
|
return {classLoader: undefined, moduleNameAndVersion: undefined}
|
||||||
|
}
|
||||||
@@ -48,6 +48,10 @@ export class JestJunitParser implements TestParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private getGroups(suite: TestSuite): TestGroupResult[] {
|
private getGroups(suite: TestSuite): TestGroupResult[] {
|
||||||
|
if (!suite.testcase) {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
const groups: {describe: string; tests: TestCase[]}[] = []
|
const groups: {describe: string; tests: TestCase[]}[] = []
|
||||||
for (const tc of suite.testcase) {
|
for (const tc of suite.testcase) {
|
||||||
let grp = groups.find(g => g.describe === tc.$.classname)
|
let grp = groups.find(g => g.describe === tc.$.classname)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export interface TestSuite {
|
|||||||
time: string
|
time: string
|
||||||
timestamp?: Date
|
timestamp?: Date
|
||||||
}
|
}
|
||||||
testcase: TestCase[]
|
testcase?: TestCase[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TestCase {
|
export interface TestCase {
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
import {DEFAULT_LOCALE} from './utils/node-utils'
|
import {DEFAULT_LOCALE} from './utils/node-utils'
|
||||||
|
|
||||||
export class TestRunResult {
|
export class TestRunResult {
|
||||||
constructor(readonly path: string, readonly suites: TestSuiteResult[], private totalTime?: number) {}
|
constructor(
|
||||||
|
readonly path: string,
|
||||||
|
readonly suites: TestSuiteResult[],
|
||||||
|
private totalTime?: number
|
||||||
|
) {}
|
||||||
|
|
||||||
get tests(): number {
|
get tests(): number {
|
||||||
return this.suites.reduce((sum, g) => sum + g.tests, 0)
|
return this.suites.reduce((sum, g) => sum + g.tests, 0)
|
||||||
@@ -40,7 +44,11 @@ export class TestRunResult {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class TestSuiteResult {
|
export class TestSuiteResult {
|
||||||
constructor(readonly name: string, readonly groups: TestGroupResult[], private totalTime?: number) {}
|
constructor(
|
||||||
|
readonly name: string,
|
||||||
|
readonly groups: TestGroupResult[],
|
||||||
|
private totalTime?: number
|
||||||
|
) {}
|
||||||
|
|
||||||
get tests(): number {
|
get tests(): number {
|
||||||
return this.groups.reduce((sum, g) => sum + g.tests.length, 0)
|
return this.groups.reduce((sum, g) => sum + g.tests.length, 0)
|
||||||
@@ -78,7 +86,10 @@ export class TestSuiteResult {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class TestGroupResult {
|
export class TestGroupResult {
|
||||||
constructor(readonly name: string | undefined | null, readonly tests: TestCaseResult[]) {}
|
constructor(
|
||||||
|
readonly name: string | undefined | null,
|
||||||
|
readonly tests: TestCaseResult[]
|
||||||
|
) {}
|
||||||
|
|
||||||
get passed(): number {
|
get passed(): number {
|
||||||
return this.tests.reduce((sum, t) => (t.result === 'success' ? sum + 1 : sum), 0)
|
return this.tests.reduce((sum, t) => (t.result === 'success' ? sum + 1 : sum), 0)
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ export enum Align {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const Icon = {
|
export const Icon = {
|
||||||
skip: '✖️', // ':heavy_multiplication_x:'
|
skip: '⚪', // ':white_circle:'
|
||||||
success: '✔️', // ':heavy_check_mark:'
|
success: '✅', // ':white_check_mark:'
|
||||||
fail: '❌' // ':x:'
|
fail: '❌' // ':x:'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,6 @@ export function parseIsoDate(str: string): Date {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getFirstNonEmptyLine(stackTrace: string): string | undefined {
|
export function getFirstNonEmptyLine(stackTrace: string): string | undefined {
|
||||||
const lines = stackTrace.split(/\r?\n/g)
|
const lines = stackTrace?.split(/\r?\n/g)
|
||||||
return lines.find(str => !/^\s*$/.test(str))
|
return lines?.find(str => !/^\s*$/.test(str))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user