Compare commits

...

53 Commits

Author SHA1 Message Date
Vittorio Rigamonti 5609ce4db7
Escape RegExp (#265) (#266)
* Escape RegExp (#265)

* run `npm package` with latest node20 version

---------

Co-authored-by: rigazilla <vittorio@infinispan.org>
Co-authored-by: Ghais Zaher <ghaiszaher@gmail.com>
2025-09-24 14:37:54 +02:00
dependabot[bot] 2f39fde5c9
Bump brace-expansion from 1.1.11 to 1.1.12 (#263)
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 08:24:33 -03:00
dependabot[bot] f93e996901
Bump @octokit/plugin-paginate-rest from 9.0.0 to 9.2.2 (#264)
Bumps [@octokit/plugin-paginate-rest](https://github.com/octokit/plugin-paginate-rest.js) from 9.0.0 to 9.2.2.
- [Release notes](https://github.com/octokit/plugin-paginate-rest.js/releases)
- [Commits](https://github.com/octokit/plugin-paginate-rest.js/compare/v9.0.0...v9.2.2)

---
updated-dependencies:
- dependency-name: "@octokit/plugin-paginate-rest"
  dependency-version: 9.2.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 08:24:10 -03:00
dependabot[bot] d3a4a98751
Bump @vercel/ncc from 0.38.1 to 0.38.3 (#237)
Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.38.1 to 0.38.3.
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](https://github.com/vercel/ncc/compare/0.38.1...0.38.3)

---
updated-dependencies:
- dependency-name: "@vercel/ncc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 11:35:38 +02:00
dependabot[bot] e3dc3b8070
Bump @actions/glob from 0.4.0 to 0.5.0 (#234)
Bumps [@actions/glob](https://github.com/actions/toolkit/tree/HEAD/packages/glob) from 0.4.0 to 0.5.0.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/glob/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/glob)

---
updated-dependencies:
- dependency-name: "@actions/glob"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 11:35:14 +02:00
dependabot[bot] 32ab8c7c18
Bump org.apache.commons:commons-lang3 in /integration-tests/maven (#258)
Bumps org.apache.commons:commons-lang3 from 3.7 to 3.18.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-version: 3.18.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 11:31:07 +02:00
dependabot[bot] 67f18696e2
Bump @octokit/request from 8.1.4 to 8.4.1 (#245)
Bumps [@octokit/request](https://github.com/octokit/request.js) from 8.1.4 to 8.4.1.
- [Release notes](https://github.com/octokit/request.js/releases)
- [Commits](https://github.com/octokit/request.js/compare/v8.1.4...v8.4.1)

---
updated-dependencies:
- dependency-name: "@octokit/request"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 11:29:23 +02:00
dependabot[bot] 3265345995
Bump undici from 5.28.4 to 5.29.0 (#254)
Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.29.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.4...v5.29.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 5.29.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 11:15:40 +02:00
dependabot[bot] bd9ece3d5b
Bump actions/setup-java from 4 to 5 (#260)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 06:14:52 -03:00
dependabot[bot] 2cdc4b541f
Bump actions/checkout from 4 to 5 (#261)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 11:08:02 +02:00
dependabot[bot] 2fc8e72d6d
Bump eslint from 9.13.0 to 9.34.0 (#262)
Bumps [eslint](https://github.com/eslint/eslint) from 9.13.0 to 9.34.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.13.0...v9.34.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.34.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 11:06:06 +02:00
Pierre-Hugues Laune 1a128e49c0
feat: ignore flaky tests (#238)
Added a new optional parameter ignore_flaky_tests which is "false" by default (current behavior)
When set to "true" : flaky tests are considered as success and will generate a successful report

---------

Co-authored-by: Ghais Zaher <ghaiszaher@gmail.com>
2025-01-08 09:30:01 +01:00
dependabot[bot] 6966497014
Bump eslint from 9.11.1 to 9.13.0 (#232)
Bumps [eslint](https://github.com/eslint/eslint) from 9.11.1 to 9.13.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.11.1...v9.13.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-03 20:38:25 +01:00
dependabot[bot] 6e69e96316
Bump @octokit/fixtures from 23.0.0 to 23.1.1 (#210)
Bumps [@octokit/fixtures](https://github.com/octokit/fixtures) from 23.0.0 to 23.1.1.
- [Release notes](https://github.com/octokit/fixtures/releases)
- [Commits](https://github.com/octokit/fixtures/compare/v23.0.0...v23.1.1)

---
updated-dependencies:
- dependency-name: "@octokit/fixtures"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-28 08:57:09 +01:00
dependabot[bot] f7d3eb51ad
Bump eslint from 9.6.0 to 9.11.1 (#229)
Bumps [eslint](https://github.com/eslint/eslint) from 9.6.0 to 9.11.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.6.0...v9.11.1)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-28 08:56:37 +01:00
dependabot[bot] 7b2af11512
Bump nock from 14.0.0-beta.5 to 14.0.0-beta.14 (#228)
Bumps [nock](https://github.com/nock/nock) from 14.0.0-beta.5 to 14.0.0-beta.14.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v14.0.0-beta.5...v14.0.0-beta.14)

---
updated-dependencies:
- dependency-name: nock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-28 08:56:21 +01:00
tinyboxvk b8621febee
Update actions/checkout to v4 in README.md (#231) 2024-10-28 08:55:41 +01:00
dependabot[bot] 87fddf2d4c
Bump commons-io:commons-io in /integration-tests/maven (#230)
Bumps commons-io:commons-io from 2.7 to 2.14.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-14 09:37:10 +02:00
dependabot[bot] 199051a14a
Bump braces from 3.0.2 to 3.0.3 (#217)
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-09 10:51:10 +02:00
dependabot[bot] 571e1c7564
Bump eslint from 8.57.0 to 9.6.0 (#219)
* Bump eslint from 8.57.0 to 9.6.0

Bumps [eslint](https://github.com/eslint/eslint) from 8.57.0 to 9.6.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.57.0...v9.6.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Migrate eslint

* adjust `eslint.config.js`

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Ferreyra <carlos.ferreyra.external@scalable.capital>
Co-authored-by: Ghais Zaher <ghaiszaher@gmail.com>
2024-07-02 14:24:34 -03:00
dependabot[bot] 1779a538c8
Bump undici from 5.28.3 to 5.28.4 (#208)
Bumps [undici](https://github.com/nodejs/undici) from 5.28.3 to 5.28.4.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.3...v5.28.4)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-04 16:02:01 -03:00
dependabot[bot] 6f22747ddf
Bump eslint from 8.56.0 to 8.57.0 (#204)
Bumps [eslint](https://github.com/eslint/eslint) from 8.56.0 to 8.57.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-03 12:39:06 +02:00
dependabot[bot] a16fc5026c
Bump nock from 14.0.0-beta.3 to 14.0.0-beta.5 (#206)
Bumps [nock](https://github.com/nock/nock) from 14.0.0-beta.3 to 14.0.0-beta.5.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v14.0.0-beta.3...v14.0.0-beta.5)

---
updated-dependencies:
- dependency-name: nock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-03 12:38:29 +02:00
dependabot[bot] 1a4864283d
Bump @octokit/fixtures from 22.0.7 to 23.0.0 (#207)
Bumps [@octokit/fixtures](https://github.com/octokit/fixtures) from 22.0.7 to 23.0.0.
- [Release notes](https://github.com/octokit/fixtures/releases)
- [Commits](https://github.com/octokit/fixtures/compare/v22.0.7...v23.0.0)

---
updated-dependencies:
- dependency-name: "@octokit/fixtures"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-03 07:35:47 -03:00
dependabot[bot] ce87cc29c8
Bump undici from 5.26.4 to 5.28.3 (#203)
Bumps [undici](https://github.com/nodejs/undici) from 5.26.4 to 5.28.3.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.26.4...v5.28.3)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-21 19:08:19 +01:00
Ghais Zaher a2911bd1a4
chore: upgrade to node 20 (#185)
Upgrade all dependencies to latest versions
Upgrade to Node 20
2024-02-21 11:22:35 +01:00
scalable-atlantis[bot] c9aa8e4c61 GHA: Copilot contributor check
See https://github.com/ScaCap/terraform/pull/13918/ for more details.
2024-02-06 07:55:29 +00:00
dependabot[bot] 4960c6f72d
Bump actions/setup-java from 3 to 4 (#194)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-03 22:56:09 +01:00
Ghais Zaher 687f107f48
GH-184: ignore incompatible XML reports (#198)
Fixes #184

Ignore files that don't have testsuites
Reorganize the folders
2024-01-15 14:59:51 +01:00
dependabot[bot] a27556b71f
Bump eslint from 8.54.0 to 8.56.0 (#196)
Bumps [eslint](https://github.com/eslint/eslint) from 8.54.0 to 8.56.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.54.0...v8.56.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 13:34:41 +01:00
dependabot[bot] 9e99e42245
Bump actions/setup-go from 4 to 5 (#195)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4 to 5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 13:34:23 +01:00
PlatformEngineering b51833dace GHA: Copilot contributor check
See https://github.com/ScaCap/terraform/pull/13918/ for more details.
2023-12-19 16:35:00 +00:00
dependabot[bot] 21d3eaf2ba
Bump eslint from 8.52.0 to 8.54.0 (#193)
Bumps [eslint](https://github.com/eslint/eslint) from 8.52.0 to 8.54.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.52.0...v8.54.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-01 12:23:47 +01:00
dependabot[bot] 7f7a8752e7
Bump @actions/core from 1.10.0 to 1.10.1 (#192)
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.10.0 to 1.10.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-01 12:23:21 +01:00
dependabot[bot] b733e5fa06
Bump actions/setup-node from 3 to 4 (#191)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-02 15:30:20 +01:00
dependabot[bot] d949797a56
Bump eslint from 8.45.0 to 8.52.0 (#190)
Bumps [eslint](https://github.com/eslint/eslint) from 8.45.0 to 8.52.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.45.0...v8.52.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-02 12:21:01 +01:00
dependabot[bot] 2b73eae2a1
Bump nock from 13.3.3 to 13.3.7 (#189)
Bumps [nock](https://github.com/nock/nock) from 13.3.3 to 13.3.7.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v13.3.3...v13.3.7)

---
updated-dependencies:
- dependency-name: nock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-02 12:13:34 +01:00
dependabot[bot] 9c98777b5e
Bump @babel/traverse from 7.22.8 to 7.23.2 (#187)
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.22.8 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-20 09:47:32 +02:00
Ghais Zaher cd2404de99
Revert "Bump @octokit/rest from 19.0.11 to 20.0.2 (#179)" (#186)
This reverts commit 09ce9cb18e.
2023-10-06 14:27:50 +02:00
dependabot[bot] e882a15498
Bump actions/checkout from 3 to 4 (#183)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-06 09:37:42 +02:00
dependabot[bot] 09ce9cb18e
Bump @octokit/rest from 19.0.11 to 20.0.2 (#179)
Bumps [@octokit/rest](https://github.com/octokit/rest.js) from 19.0.11 to 20.0.2.
- [Release notes](https://github.com/octokit/rest.js/releases)
- [Commits](https://github.com/octokit/rest.js/compare/v19.0.11...v20.0.2)

---
updated-dependencies:
- dependency-name: "@octokit/rest"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-06 09:37:08 +02:00
dependabot[bot] 8b7ece62e6
Bump nock from 13.3.2 to 13.3.3 (#177)
Bumps [nock](https://github.com/nock/nock) from 13.3.2 to 13.3.3.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v13.3.2...v13.3.3)

---
updated-dependencies:
- dependency-name: nock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-06 09:36:48 +02:00
dependabot[bot] 6efd3d10b5
Bump nock from 13.3.1 to 13.3.2 (#173)
Bumps [nock](https://github.com/nock/nock) from 13.3.1 to 13.3.2.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v13.3.1...v13.3.2)

---
updated-dependencies:
- dependency-name: nock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-19 13:06:08 +02:00
dependabot[bot] cb8fa567f8
Bump jest from 29.5.0 to 29.6.1 (#172)
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.5.0 to 29.6.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.6.1/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-19 09:56:25 +02:00
dependabot[bot] aa43217b5c
Bump @octokit/plugin-retry from 4.1.6 to 6.0.0 (#168)
* Bump @octokit/plugin-retry from 4.1.6 to 6.0.0

Bumps [@octokit/plugin-retry](https://github.com/octokit/plugin-retry.js) from 4.1.6 to 6.0.0.
- [Release notes](https://github.com/octokit/plugin-retry.js/releases)
- [Commits](https://github.com/octokit/plugin-retry.js/compare/v4.1.6...v6.0.0)

---
updated-dependencies:
- dependency-name: "@octokit/plugin-retry"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* `npm run package`

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ghais Zaher <ghaiszaher@gmail.com>
2023-07-19 09:55:28 +02:00
dependabot[bot] 372a0a3ce6
Bump eslint from 8.41.0 to 8.45.0 (#169)
Bumps [eslint](https://github.com/eslint/eslint) from 8.41.0 to 8.45.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.41.0...v8.45.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-19 09:52:27 +02:00
dependabot[bot] e7304b1507
Bump word-wrap from 1.2.3 to 1.2.4 (#171)
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-19 09:44:25 +02:00
Ghais Zaher 901f7f3fb7
fix: fall back to test case name if message is empty (#164)
* Related to https://github.com/ScaCap/action-surefire-report/issues/161
* Fixes failure when `message` is empty (which is required https://docs.github.com/en/rest/checks/runs?apiVersion=2022-11-28#update-a-check-run)
* Updates dependencies
2023-07-18 17:30:14 +02:00
dependabot[bot] 78edec6077
Bump eslint from 8.33.0 to 8.40.0 (#160)
Bumps [eslint](https://github.com/eslint/eslint) from 8.33.0 to 8.40.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.33.0...v8.40.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-10 16:07:35 +02:00
dependabot[bot] 6408e20d8a
Bump jest-junit from 15.0.0 to 16.0.0 (#157)
Bumps [jest-junit](https://github.com/jest-community/jest-junit) from 15.0.0 to 16.0.0.
- [Release notes](https://github.com/jest-community/jest-junit/releases)
- [Commits](https://github.com/jest-community/jest-junit/compare/v15.0.0...v16.0.0)

---
updated-dependencies:
- dependency-name: jest-junit
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-09 08:24:35 +02:00
Ghais Zaher 3163ccef2b
fix: mention required permissions in documentation (#155) 2023-04-17 17:24:35 +02:00
dependabot[bot] 2c1664c634
Bump actions/setup-go from 3 to 4 (#152)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 4.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-04 09:23:15 +02:00
Jan Waś 48452168d9
Revert libxml (#147)
* Revert "Run the action in a container (#141)"

This reverts commit 01b27826d2.

* Revert "Avoid huge input lookup errors (#144)"

This reverts commit 7263a78ba0.

* Revert "Use a more efficient xml parser library (#138)"

This reverts commit 5b7a533e50.
2023-03-13 12:59:42 +01:00
46 changed files with 31217 additions and 14898 deletions

View File

@ -1 +0,0 @@
dist/*

View File

@ -1,19 +0,0 @@
{
"env": {
"commonjs": true,
"es6": true,
"node": true,
"jest": true
},
"extends": "eslint:recommended",
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaVersion": 2020
},
"rules": {
"indent": 2
}
}

View File

@ -16,30 +16,31 @@ jobs:
contents: read
checks: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
java-version: 8
distribution: 'temurin'
cache: 'maven'
- run: cd tests && mvn clean test --batch-mode -Dmaven.test.failure.ignore=true
- run: cd integration-tests/maven && mvn clean verify --batch-mode -Dmaven.test.failure.ignore=true
- uses: ./
if: github.ref != 'refs/heads/master'
with:
check_name: Example Surefire Test Report
report_paths: '**/surefire-reports/*.xml, **/failsafe-reports/*.xml'
- uses: cclauss/GitHub-Action-for-pytest@0.5.0
with:
args: pytest --junit-xml=python/report.xml python/ || exit 0
args: pytest integration-tests/python/ --junit-xml=integration-tests/python/report.xml || exit 0
- uses: ./
if: github.ref != 'refs/heads/master'
with:
check_name: Example Pytest Report
report_paths: python/report.xml
- uses: actions/setup-go@v3
report_paths: integration-tests/python/report.xml
- uses: actions/setup-go@v5
with:
go-version: 1.18.x
go-version: 1.21.x
- run: |
cd go &&
cd integration-tests/go &&
go install github.com/jstemmer/go-junit-report/v2@latest &&
go test -v 2>&1 ./... |
go-junit-report -out report.xml
@ -47,11 +48,11 @@ jobs:
if: github.ref != 'refs/heads/master'
with:
check_name: Example Go Report
report_paths: go/report.xml
report_paths: integration-tests/go/report.xml
file_name_in_stack_trace: true
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 16
node-version: 20
cache: npm
- run: npm install
- run: npm run eslint

1
.npmrc Normal file
View File

@ -0,0 +1 @@
save-exact = true

View File

@ -1,5 +0,0 @@
FROM node:16-bullseye-slim
COPY dist /dist
ENTRYPOINT ["node", "/dist/index.js"]

View File

@ -33,6 +33,10 @@ Optional. Check will fail if there are test failures. The default is `false`.
Optional. Check will fail if no tests were found. The default is `true`.
### `ignore_flaky_tests`
Optional. Set to `true` to consider flaky tests as success. The default is `false`.
### `skip_publishing`
Optional. Skip the test report publishing (check run creation). The default is `false`.
@ -61,9 +65,13 @@ jobs:
build:
name: Build and Run Tests
runs-on: ubuntu-latest
# Permissions block is optional, useful for dependabot checks
permissions:
checks: write
contents: read
steps:
- name: Checkout Code
uses: actions/checkout@v1
uses: actions/checkout@v4
- name: Build and Run Tests
run: mvn test --batch-mode --fail-at-end
- name: Publish Test Report

View File

@ -15,11 +15,12 @@ const action = async () => {
const commit = core.getInput('commit');
const failOnFailedTests = core.getInput('fail_on_test_failures') === 'true';
const failIfNoTests = core.getInput('fail_if_no_tests') === 'true';
const ignoreFlakyTests = core.getInput('ignore_flaky_tests') === 'true';
const skipPublishing = core.getInput('skip_publishing') === 'true';
const isFilenameInStackTrace = core.getInput('file_name_in_stack_trace') === 'true';
const githubBaseUrl = core.getInput('github_base_url');
let { count, skipped, annotations } = await parseTestReports(reportPaths, isFilenameInStackTrace);
let { count, skipped, annotations } = await parseTestReports(reportPaths, isFilenameInStackTrace, ignoreFlakyTests);
const foundResults = count > 0 || skipped > 0;
const conclusion =
(foundResults && annotations.length === 0) || (!foundResults && !failIfNoTests)

View File

@ -4,12 +4,12 @@ const finishedWithFailures = {
status: 'completed',
conclusion: 'failure',
output: {
title: '19 tests run, 1 skipped, 12 failed.',
title: '20 tests run, 1 skipped, 13 failed.',
summary: '',
annotations: [
{
path:
'tests/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
'integration-tests/maven/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
start_line: 39,
end_line: 39,
start_column: 0,
@ -22,7 +22,7 @@ const finishedWithFailures = {
},
{
path:
'tests/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
'integration-tests/maven/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
start_line: 49,
end_line: 49,
start_column: 0,
@ -35,7 +35,7 @@ const finishedWithFailures = {
},
{
path:
'tests/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
'integration-tests/maven/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
start_line: 57,
end_line: 57,
start_column: 0,
@ -48,7 +48,7 @@ const finishedWithFailures = {
},
{
path:
'tests/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
'integration-tests/maven/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
start_line: 18,
end_line: 18,
start_column: 0,
@ -61,7 +61,7 @@ const finishedWithFailures = {
},
{
path:
'tests/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
'integration-tests/maven/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
start_line: 32,
end_line: 32,
start_column: 0,
@ -74,7 +74,7 @@ const finishedWithFailures = {
},
{
path:
'tests/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
'integration-tests/maven/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
start_line: 25,
end_line: 25,
start_column: 0,
@ -88,7 +88,7 @@ const finishedWithFailures = {
},
{
path:
'tests/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
'integration-tests/maven/email/src/test/java/action/surefire/report/email/EmailAddressTest.java',
start_line: 66,
end_line: 66,
start_column: 0,
@ -101,7 +101,7 @@ const finishedWithFailures = {
},
{
path:
'tests/evil_twins/src/test/java/action/surefire/report/twin/second/TwinTest.java',
'integration-tests/maven/evil_twins/src/test/java/action/surefire/report/twin/second/TwinTest.java',
start_line: 13,
end_line: 13,
start_column: 0,
@ -113,7 +113,18 @@ const finishedWithFailures = {
"java.lang.AssertionError: \n\nExpected: \"Good Twin\"\n but: was \"Evil Twin\"\n\tat action.surefire.report.twin.second.TwinTest.should_always_fail(TwinTest.java:13)"
},
{
path: 'tests/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt',
path: 'integration-tests/maven/flakes/src/test/java/action/surefire/report/calc/AllOkWithFlakesTest.java',
start_line: 1,
end_line: 1,
start_column: 0,
end_column: 0,
annotation_level: 'failure',
title: 'AllOkWithFlakesTest.firstTryFailSecondTrySuccess',
message: 'firstTryFailSecondTrySuccess',
raw_details: ""
},
{
path: 'integration-tests/maven/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt',
start_line: 27,
end_line: 27,
start_column: 0,
@ -126,7 +137,7 @@ const finishedWithFailures = {
'java.lang.AssertionError: unexpected exception type thrown; expected:<java.lang.IllegalStateException> but was:<java.lang.IllegalArgumentException>\n\tat action.surefire.report.calc.CalcUtilsTest.test error handling(CalcUtilsTest.kt:27)\nCaused by: java.lang.IllegalArgumentException: Amount must have max 2 non-zero decimal places\n\tat action.surefire.report.calc.CalcUtilsTest.scale(CalcUtilsTest.kt:31)\n\tat action.surefire.report.calc.CalcUtilsTest.access$scale(CalcUtilsTest.kt:9)\n\tat action.surefire.report.calc.CalcUtilsTest.test error handling(CalcUtilsTest.kt:27)'
},
{
path: 'tests/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt',
path: 'integration-tests/maven/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt',
start_line: 15,
end_line: 15,
start_column: 0,
@ -138,7 +149,7 @@ const finishedWithFailures = {
'java.lang.AssertionError: \n\nExpected: <100.10>\n but: was <100.11>\n\tat action.surefire.report.calc.CalcUtilsTest.test scale(CalcUtilsTest.kt:15)'
},
{
path: 'tests/utils/src/test/java/action/surefire/report/calc/StringUtilsTest.java',
path: 'integration-tests/maven/utils/src/test/java/action/surefire/report/calc/StringUtilsTest.java',
start_line: 27,
end_line: 27,
start_column: 0,
@ -146,12 +157,12 @@ const finishedWithFailures = {
annotation_level: 'failure',
title: 'StringUtilsTest.require_fail',
message:
'Expected: (an instance of java.lang.IllegalArgumentException and exception with message a string containing "This is unexpected")\n but: exception with message a string containing "This is unexpected" message was "Input=\'\' didn\'t match condition."\nStacktrace was: java.lang.IllegalArgumentException: Input=\'\' didn\'t match condition.\n at action.surefire.report.calc.StringUtils.requireNotBlank(StringUtils.java:25)\n at action.surefire.report.calc.StringUtils.requireNotBlank(StringUtils.java:18)\n at action.surefire.report.calc.StringUtilsTest.require_fail(StringUtilsTest.java:27)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)\n at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)\n at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)\n at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)\n at org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:258)\n at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)\n at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)\n at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)\n at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)\n at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)\n at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)\n at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)\n at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)\n at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)\n at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)\n at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)\n at org.junit.runners.ParentRunner.run(ParentRunner.java:413)\n at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)\n at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)\n at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)\n at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)\n at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)\n at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)\n at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)\n at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)',
'Expected: (an instance of java.lang.IllegalArgumentException and exception with message a string containing "This is unexpected")\n but: exception with message a string containing "This is unexpected" message was "Input=\'\' didn\'t match condition."\nStacktrace was: java.lang.IllegalArgumentException: Input=\'\' didn\'t match condition.\n\tat action.surefire.report.calc.StringUtils.requireNotBlank(StringUtils.java:25)\n\tat action.surefire.report.calc.StringUtils.requireNotBlank(StringUtils.java:18)\n\tat action.surefire.report.calc.StringUtilsTest.require_fail(StringUtilsTest.java:27)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)\n\tat org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)\n\tat org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)\n\tat org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)\n\tat org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:258)\n\tat org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)\n\tat org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)\n\tat org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)\n\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)\n\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)\n\tat org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)\n\tat org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)\n\tat org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)\n\tat org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)\n\tat org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)\n\tat org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)\n\tat org.junit.runners.ParentRunner.run(ParentRunner.java:413)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)\n\tat org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)\n\tat org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)\n\tat org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)\n\tat org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)',
raw_details:
'java.lang.AssertionError: \n\nExpected: (an instance of java.lang.IllegalArgumentException and exception with message a string containing "This is unexpected")\n but: exception with message a string containing "This is unexpected" message was "Input=\'\' didn\'t match condition."\nStacktrace was: java.lang.IllegalArgumentException: Input=\'\' didn\'t match condition.\n\tat action.surefire.report.calc.StringUtils.requireNotBlank(StringUtils.java:25)\n\tat action.surefire.report.calc.StringUtils.requireNotBlank(StringUtils.java:18)\n\tat action.surefire.report.calc.StringUtilsTest.require_fail(StringUtilsTest.java:27)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)\n\tat org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)\n\tat org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)\n\tat org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)\n\tat org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:258)\n\tat org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)\n\tat org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)\n\tat org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)\n\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)\n\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)\n\tat org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)\n\tat org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)\n\tat org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)\n\tat org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)\n\tat org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)\n\tat org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)\n\tat org.junit.runners.ParentRunner.run(ParentRunner.java:413)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)\n\tat org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)\n\tat org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)\n\tat org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)\n\tat org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)'
},
{
path: 'tests/utils/src/test/java/action/surefire/report/calc/StringUtilsTest.java',
path: 'integration-tests/maven/utils/src/test/java/action/surefire/report/calc/StringUtilsTest.java',
start_line: 20,
end_line: 20,
start_column: 0,

View File

@ -107,6 +107,24 @@ describe('action should work', () => {
expect(failed).toBeNull();
});
it('should send all ok if tests were flaky and ignore_flaky_test is true', async () => {
inputs.report_paths = '**/surefire-reports/TEST-*AllOkWithFlakesTest.xml';
inputs.ignore_flaky_tests = 'true';
let request = null;
const scope = nock('https://api.github.com')
.post('/repos/scacap/action-surefire-report/check-runs', body => {
request = body;
return body;
})
.reply(200, {});
await action();
scope.done();
expect(request).toStrictEqual(finishedSuccess);
expect(outputs).toHaveProperty('conclusion', 'success');
expect(failed).toBeNull();
});
it('should send failure if no test results were found', async () => {
inputs.report_paths = '**/xxx/*.xml';
let request = null;
@ -191,7 +209,7 @@ describe('action should work', () => {
await action();
scope.done();
expect(failed).toBe('There were 12 failed tests');
expect(failed).toBe('There were 13 failed tests');
});
});

View File

@ -31,6 +31,10 @@ inputs:
description: 'fail run if there were no test results found'
required: false
default: 'true'
ignore_flaky_tests:
description: 'consider flaky tests as success'
required: false
default: 'false'
skip_publishing:
description: 'skip test report publishing'
required: false
@ -49,5 +53,5 @@ outputs:
description: 'the test outcome, either `success` or `failure`'
runs:
using: 'docker'
image: 'Dockerfile'
using: 'node20'
main: 'dist/index.js'

BIN
dist/build/Release/node_expat.node vendored Normal file

Binary file not shown.

Binary file not shown.

37347
dist/index.js vendored

File diff suppressed because one or more lines are too long

30
eslint.config.js Normal file
View File

@ -0,0 +1,30 @@
const globals = require('globals');
const js = require('@eslint/js');
const {FlatCompat} = require('@eslint/eslintrc');
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all
});
module.exports = [{
ignores: ['dist/*'],
}, ...compat.extends('eslint:recommended'), {
languageOptions: {
globals: {
...globals.commonjs,
...globals.node,
...globals.jest,
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
},
ecmaVersion: 2018,
sourceType: 'commonjs',
},
rules: {
indent: 2,
},
}];

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>tests</artifactId>
<groupId>action.surefire.report</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>flakes</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Duser.language=en</argLine>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<testFailureIgnore>true</testFailureIgnore>
<rerunFailingTestsCount>1</rerunFailingTestsCount>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,20 @@
package action.surefire.report.calc;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
public class AllOkWithFlakesTest {
private static boolean failTest = true;
@Test
public void firstTryFailSecondTrySuccess() {
if(failTest) {
failTest = false;
assertTrue(false);
} else {
assertTrue(true);
}
}
}

View File

@ -13,6 +13,7 @@
<module>utils</module>
<module>email</module>
<module>evil_twins</module>
<module>flakes</module>
</modules>
<properties>
@ -50,7 +51,7 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</version>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
@ -61,7 +62,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
<version>3.18.0</version>
</dependency>
</dependencies>
</dependencyManagement>
@ -78,6 +79,19 @@
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.2</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

View File

@ -48,4 +48,4 @@ public class StringUtilsTest {
thrown.expectMessage("Input='' didn't match condition.");
StringUtils.requireNotBlank("");
}
}
}

8281
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -31,20 +31,20 @@
"titleTemplate": "{title}"
},
"dependencies": {
"@actions/core": "1.10.0",
"@actions/github": "5.1.1",
"@actions/glob": "0.4.0",
"@octokit/rest": "19.0.7",
"@octokit/plugin-retry": "4.1.1",
"libxmljs": "0.19.10"
"@actions/core": "1.10.1",
"@actions/github": "6.0.0",
"@actions/glob": "0.5.0",
"@octokit/plugin-retry": "6.0.1",
"@octokit/rest": "20.0.2",
"xml-js": "1.6.11"
},
"devDependencies": {
"@octokit/fixtures": "22.0.6",
"@vercel/ncc": "0.36.1",
"@octokit/fixtures": "23.1.1",
"@vercel/ncc": "0.38.3",
"enzyme": "3.11.0",
"eslint": "8.33.0",
"jest": "29.4.2",
"jest-junit": "15.0.0",
"nock": "13.3.0"
"eslint": "9.34.0",
"jest": "29.7.0",
"jest-junit": "16.0.0",
"nock": "14.0.0-beta.14"
}
}

137
utils.js
View File

@ -1,7 +1,7 @@
const glob = require('@actions/glob');
const core = require('@actions/core');
const fs = require('fs');
const libxmljs = require("libxmljs");
const parser = require('xml-js');
const resolveFileAndLine = (file, classname, output, isFilenameInOutput) => {
// extract filename from classname and remove suffix
@ -9,27 +9,25 @@ const resolveFileAndLine = (file, classname, output, isFilenameInOutput) => {
let filenameWithPackage;
if (isFilenameInOutput) {
filename = output.split(':')[0].trim();
filenameWithPackage = filename
filenameWithPackage = filename;
} else {
filename = file ? file : classname.split('.').slice(-1)[0].split('(')[0];
filenameWithPackage = classname.replace(/\./g, "/");
filenameWithPackage = classname.replace(/\./g, '/');
}
const matches = output.match(new RegExp(`${filename}.*?:\\d+`, 'g'));
if (!matches) return { filename: filename, filenameWithPackage: filenameWithPackage, line: 1 };
const escapedFilename = filename.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
const matches = output.match(new RegExp(`${escapedFilename}.*?:\\d+`, 'g'));
if (!matches) return {filename: filename, filenameWithPackage: filenameWithPackage, line: 1};
const [lastItem] = matches.slice(-1);
const [, line] = lastItem.split(':');
core.debug(`Resolved file ${filenameWithPackage} with name ${filename} and line ${line}`);
return { filename, filenameWithPackage, line: parseInt(line) };
return {filename, filenameWithPackage, line: parseInt(line)};
};
const resolvePath = async filenameWithPackage => {
if (!filenameWithPackage) {
return '';
}
core.debug(`Resolving path for ${filenameWithPackage}`);
const globber = await glob.create([`**/${filenameWithPackage}.*`, `**/${filenameWithPackage}`].join('\n'), { followSymbolicLinks: false });
const globber = await glob.create([`**/${filenameWithPackage}.*`, `**/${filenameWithPackage}`].join('\n'), {followSymbolicLinks: false});
const results = await globber.glob();
core.debug(`Matched files: ${results}`);
const searchPath = globber.getSearchPaths()[0];
@ -52,7 +50,20 @@ const resolvePath = async filenameWithPackage => {
return canonicalPath;
};
async function parseFile(file, isFilenameInStackTrace) {
function getTestsuites(report) {
if (report.testsuite) {
return [report.testsuite];
}
if (!report.testsuites || !report.testsuites.testsuite) {
return [];
}
if (Array.isArray(report.testsuites.testsuite)) {
return report.testsuites.testsuite;
}
return [report.testsuites.testsuite];
}
async function parseFile(file, isFilenameInStackTrace, ignoreFlakyTests) {
core.debug(`Parsing file ${file}`);
let count = 0;
let skipped = 0;
@ -60,64 +71,88 @@ async function parseFile(file, isFilenameInStackTrace) {
const data = await fs.promises.readFile(file);
const report = libxmljs.parseXml(data + "", {huge: true});
const testsuites = report.find('//testsuite');
const report = JSON.parse(parser.xml2json(data, {compact: true}));
core.debug(`parsed report: ${JSON.stringify(report)}`);
const testsuites = getTestsuites(report);
core.debug(`test suites: ${JSON.stringify(testsuites)}`);
for (const testsuite of testsuites) {
const testcases = testsuite.find('testcase');
const testcases = Array.isArray(testsuite.testcase)
? testsuite.testcase
: testsuite.testcase
? [testsuite.testcase]
: [];
for (const testcase of testcases) {
count++;
skipped += testcase.find('skipped').length;
let failures = testcase.find('failure | flakyFailure | error');
if (failures.length == 0) {
continue;
if (testcase.skipped) skipped++;
if (testcase.failure || (testcase.flakyFailure && !ignoreFlakyTests) || testcase.error) {
let testcaseData =
(testcase.failure && testcase.failure._cdata) ||
(testcase.failure && testcase.failure._text) ||
(testcase.flakyFailure && testcase.flakyFailure._cdata) ||
(testcase.flakyFailure && testcase.flakyFailure._text) ||
(testcase.error && testcase.error._cdata) ||
(testcase.error && testcase.error._text) ||
'';
testcaseData = Array.isArray(testcaseData) ? testcaseData : [testcaseData];
const stackTrace = (testcaseData.length ? testcaseData.join('') : '').trim();
const message = (
(testcase.failure &&
testcase.failure._attributes &&
testcase.failure._attributes.message) ||
(testcase.flakyFailure &&
testcase.flakyFailure._attributes &&
testcase.flakyFailure._attributes.message) ||
(testcase.error &&
testcase.error._attributes &&
testcase.error._attributes.message) ||
stackTrace.split('\n').slice(0, 2).join('\n') ||
testcase._attributes.name
).trim();
const {filename, filenameWithPackage, line} = resolveFileAndLine(
testcase._attributes.file,
testcase._attributes.classname,
stackTrace,
isFilenameInStackTrace
);
const path = await resolvePath(filenameWithPackage);
const title = `${filename}.${testcase._attributes.name}`;
core.info(`${path}:${line} | ${message.replace(/\n/g, ' ')}`);
annotations.push({
path,
start_line: line,
end_line: line,
start_column: 0,
end_column: 0,
annotation_level: 'failure',
title,
message,
raw_details: stackTrace
});
}
const stackTrace = failures.map(failure => failure.text()).join('').trim();
const message = (
failures.map(failure => failure.attr('message')?.value()).join('') ||
stackTrace.split('\n').slice(0, 2).join('\n')
).trim();
const { filename, filenameWithPackage, line } = resolveFileAndLine(
testcase.attr('file')?.value() || '',
testcase.attr('classname')?.value() || '',
stackTrace,
isFilenameInStackTrace
);
const path = await resolvePath(filenameWithPackage);
const title = `${filename}.${testcase.attr('name')?.value()}`;
core.info(`${path}:${line} | ${message.replace(/\n/g, ' ')}`);
annotations.push({
path,
start_line: line,
end_line: line,
start_column: 0,
end_column: 0,
annotation_level: 'failure',
title,
message,
raw_details: stackTrace
});
}
}
return { count, skipped, annotations };
return {count, skipped, annotations};
}
const parseTestReports = async (reportPaths, isFilenameInStackTrace) => {
const globber = await glob.create(reportPaths, { followSymbolicLinks: false });
const parseTestReports = async (reportPaths, isFilenameInStackTrace, ignoreFlakyTests) => {
const globber = await glob.create(reportPaths, {followSymbolicLinks: false});
let annotations = [];
let count = 0;
let skipped = 0;
for await (const file of globber.globGenerator()) {
const { count: c, skipped: s, annotations: a } = await parseFile(file, isFilenameInStackTrace);
const {count: c, skipped: s, annotations: a} = await parseFile(file, isFilenameInStackTrace, ignoreFlakyTests);
if (c === 0) continue;
count += c;
skipped += s;
annotations = annotations.concat(a);
}
return { count, skipped, annotations };
return {count, skipped, annotations};
};
module.exports = { resolveFileAndLine, resolvePath, parseFile, parseTestReports };

View File

@ -99,32 +99,32 @@ describe('resolvePath', () => {
it('should find correct file for Java filename', async () => {
const path = await resolvePath('EmailAddressTest');
expect(path).toBe(
'tests/email/src/test/java/action/surefire/report/email/EmailAddressTest.java'
'integration-tests/maven/email/src/test/java/action/surefire/report/email/EmailAddressTest.java'
);
});
it('should find correct file for Kotlin filename', async () => {
const path = await resolvePath('CalcUtilsTest');
expect(path).toBe('tests/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt');
expect(path).toBe('integration-tests/maven/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt');
});
it('should find correct file when extension is included', async () => {
const path = await resolvePath('CalcUtilsTest.kt');
expect(path).toBe('tests/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt');
expect(path).toBe('integration-tests/maven/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt');
});
});
describe('parseFile', () => {
it('should parse CalcUtils results', async () => {
const { count, skipped, annotations } = await parseFile(
'tests/utils/target/surefire-reports/TEST-action.surefire.report.calc.CalcUtilsTest.xml'
'integration-tests/maven/utils/target/surefire-reports/TEST-action.surefire.report.calc.CalcUtilsTest.xml'
);
expect(count).toBe(2);
expect(skipped).toBe(0);
expect(annotations).toStrictEqual([
{
path: 'tests/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt',
path: 'integration-tests/maven/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt',
start_line: 27,
end_line: 27,
start_column: 0,
@ -133,11 +133,10 @@ describe('parseFile', () => {
title: 'CalcUtilsTest.test error handling',
message:
'unexpected exception type thrown; expected:<java.lang.IllegalStateException> but was:<java.lang.IllegalArgumentException>',
raw_details:
'java.lang.AssertionError: unexpected exception type thrown; expected:<java.lang.IllegalStateException> but was:<java.lang.IllegalArgumentException>\n\tat action.surefire.report.calc.CalcUtilsTest.test error handling(CalcUtilsTest.kt:27)\nCaused by: java.lang.IllegalArgumentException: Amount must have max 2 non-zero decimal places\n\tat action.surefire.report.calc.CalcUtilsTest.scale(CalcUtilsTest.kt:31)\n\tat action.surefire.report.calc.CalcUtilsTest.access$scale(CalcUtilsTest.kt:9)\n\tat action.surefire.report.calc.CalcUtilsTest.test error handling(CalcUtilsTest.kt:27)'
raw_details: expect.stringContaining('at action.surefire.report.calc.CalcUtilsTest.test error handling(CalcUtilsTest.kt:27)')
},
{
path: 'tests/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt',
path: 'integration-tests/maven/utils/src/test/java/action/surefire/report/calc/CalcUtilsTest.kt',
start_line: 15,
end_line: 15,
start_column: 0,
@ -145,19 +144,18 @@ describe('parseFile', () => {
annotation_level: 'failure',
title: 'CalcUtilsTest.test scale',
message: 'Expected: <100.10>\n but: was <100.11>',
raw_details:
'java.lang.AssertionError: \n\nExpected: <100.10>\n but: was <100.11>\n\tat action.surefire.report.calc.CalcUtilsTest.test scale(CalcUtilsTest.kt:15)'
raw_details: expect.stringContaining('at action.surefire.report.calc.CalcUtilsTest.test scale(CalcUtilsTest.kt:15)')
}
]);
});
it('should parse pytest results', async () => {
const { count, skipped, annotations } = await parseFile('python/report.xml');
const { count, skipped, annotations } = await parseFile('integration-tests/python/report.xml');
expect(count).toBe(3);
expect(skipped).toBe(0);
expect(annotations).toStrictEqual([
{
path: 'python/test_sample.py',
path: 'integration-tests/python/test_sample.py',
start_line: 10,
end_line: 10,
start_column: 0,
@ -166,10 +164,10 @@ describe('parseFile', () => {
title: 'test_sample.test_which_fails',
message: "AssertionError: assert 'test' == 'xyz'\n - xyz\n + test",
raw_details:
"def test_which_fails():\n event = { 'attr': 'test'}\n> assert event['attr'] == 'xyz'\nE AssertionError: assert 'test' == 'xyz'\nE - xyz\nE + test\n\npython/test_sample.py:10: AssertionError"
"def test_which_fails():\n event = { 'attr': 'test'}\n> assert event['attr'] == 'xyz'\nE AssertionError: assert 'test' == 'xyz'\nE - xyz\nE + test\n\nintegration-tests/python/test_sample.py:10: AssertionError"
},
{
path: 'python/test_sample.py',
path: 'integration-tests/python/test_sample.py',
start_line: 14,
end_line: 14,
start_column: 0,
@ -178,19 +176,19 @@ describe('parseFile', () => {
title: 'test_sample.test_with_error',
message: "AttributeError: 'dict' object has no attribute 'attr'",
raw_details:
"def test_with_error():\n event = { 'attr': 'test'}\n> assert event.attr == 'test'\nE AttributeError: 'dict' object has no attribute 'attr'\n\npython/test_sample.py:14: AttributeError"
"def test_with_error():\n event = { 'attr': 'test'}\n> assert event.attr == 'test'\nE AttributeError: 'dict' object has no attribute 'attr'\n\nintegration-tests/python/test_sample.py:14: AttributeError"
}
]);
});
it('should parse go results', async () => {
const {count, skipped, annotations} = await parseFile('go/report.xml', true);
const {count, skipped, annotations} = await parseFile('integration-tests/go/report.xml', true);
expect(count).toBe(3);
expect(skipped).toBe(0);
// noinspection RegExpRepeatedSpace
expect(annotations).toStrictEqual([
{
path: 'go/main_test.go',
path: 'integration-tests/go/main_test.go',
start_line: 12,
end_line: 12,
start_column: 0,
@ -201,7 +199,7 @@ describe('parseFile', () => {
raw_details: 'main_test.go:12: failing test'
},
{
path: 'go/utils/string_test.go',
path: 'integration-tests/go/utils/string_test.go',
start_line: 7,
end_line: 7,
start_column: 0,
@ -210,7 +208,7 @@ describe('parseFile', () => {
title: 'string_test.go.TestFailing',
message: 'Failed',
raw_details: expect.stringMatching(new RegExp(`string_test.go:7:
\\s*Error Trace:.*action-surefire-report/go/utils/string_test.go:7
\\s*Error Trace:.*action-surefire-report/integration-tests/go/utils/string_test.go:7
\\s*Error: \\s*Not equal:
\\s*expected: "1"
\\s*actual : "2"
@ -227,7 +225,7 @@ describe('parseFile', () => {
});
it('should parse custom report with details as an array', async () => {
const { count, skipped, annotations } = await parseFile(
'custom_reports/TEST-pro.taskana.common.api.ListUtilTest-H2.xml'
'integration-tests/custom_reports/TEST-pro.taskana.common.api.ListUtilTest-H2.xml'
);
expect(count).toBe(1);
@ -282,7 +280,7 @@ describe('parseFile', () => {
it('should parse custom report with flaky failures', async () => {
const { count, skipped, annotations } = await parseFile(
'custom_reports/TEST-test.MyIntegrationTestSuite.xml'
'integration-tests/custom_reports/TEST-test.MyIntegrationTestSuite.xml'
);
expect(count).toBe(5);
@ -290,8 +288,8 @@ describe('parseFile', () => {
expect(annotations).toStrictEqual([
{
path: 'test/MyIntegrationTest',
start_line: 43,
end_line: 43,
start_line: 1,
end_line: 1,
start_column: 0,
end_column: 0,
annotation_level: 'failure',
@ -300,16 +298,7 @@ describe('parseFile', () => {
'JSON path "$.mails[0].subject"\n' +
'Expected: "MySubject"\n' +
' but: was "YourSubject"',
raw_details:
'java.lang.AssertionError: \n' +
'JSON path "$.mails[0].subject"\n' +
'Expected: "MySubject"\n' +
' but: was "YourSubject"\n' +
' at test.MyIntegrationTest.testGetMails(MyIntegrationTest.java:43)\n' +
'\n' +
' 2021-02-05 09:11:05.249 INFO [,,,] 2909 --- [ main] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet \'\'\n' +
'2021-02-05 09:11:05.249 INFO [,,,] 2909 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet \'\'\n' +
'2021-02-05 09:11:05.255 INFO [,,,] 2909 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 6 ms',
raw_details: ''
},
{
path: 'test/DocumentUploadIntegrationTest',
@ -327,20 +316,14 @@ describe('parseFile', () => {
},
{
path: 'test/DocumentUploadIntegrationTest',
start_line: 23,
end_line: 23,
start_line: 1,
end_line: 1,
start_column: 0,
end_column: 0,
annotation_level: 'failure',
title: 'DocumentUploadIntegrationTest.shouldReturnSuccessResponse',
message: 'Status expected:<200> but was:<403>',
raw_details:
'java.lang.AssertionError: Status expected:<200> but was:<403>\n' +
' at test.DocumentUploadIntegrationTest.shouldReturnSuccessResponse(DocumentUploadIntegrationTest.java:23)\n' +
'\n' +
' 2021-02-05 09:11:11.668 INFO [,,,] 2909 --- [ main] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet \'\'\n' +
'2021-02-05 09:11:11.668 INFO [,,,] 2909 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet \'\'\n' +
'2021-02-05 09:11:11.673 INFO [,,,] 2909 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 5 ms',
raw_details: ''
},
{
path: 'test/DocumentUploadIntegrationTest',