Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests: Adds reporter that shows JS test errors on GitHub when executing GitHub workflows #31041

Merged
merged 22 commits into from Apr 23, 2021

Conversation

ockham
Copy link
Contributor

@ockham ockham commented Apr 21, 2021

Description

Try adding a Jest Reporter that produces an output format for GitHub annotations.

Based on jestjs/jest#11320 (but ported the TypeScript to plain ol' JS since I couldn't get the TS based reporter to work). Quoting that PR:

Add a Jest reporter to output a format that will be interpreted by GitHub Actions as annotations -- i.e. any errors reported by Jest will show up in a PR's diff below the offending line. This should make for significantly improved Developer Experience, since developers no longer have to scan CI logs for errors, but instead will be notified of them at the location where they happen.

This PR is mostly meant to demo that feature; ideally, we'll be able to tweak it and merge it. If jestjs/jest#11320 gets merged, we can then consider switching to that, once there's a Jest version that includes it.

How has this been tested?

See diff view: There should be an annotation below the failing assertion.

To test locally, run

GITHUB_ACTIONS=true npm run test-unit -- test/unit/test/index.test.js

to see the GHA-specific output format. Confirm that if you omit the GITHUB_ACTIONS env var, you won't see that output.

Screenshots

image


FYI @gziolo

@ockham ockham added the [Type] Automated Testing Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests. label Apr 21, 2021
@ockham ockham self-assigned this Apr 21, 2021
@github-actions
Copy link

github-actions bot commented Apr 21, 2021

Size Change: +3.11 kB (0%)

Total Size: 1.47 MB

Filename Size Change
build/api-fetch/index.js 3.42 kB +3 B (0%)
build/autop/index.js 2.83 kB +1 B (0%)
build/block-directory/index.js 8.63 kB +1 B (0%)
build/block-editor/index.js 132 kB +1.93 kB (+1%)
build/block-editor/style-rtl.css 13.1 kB +532 B (+4%)
build/block-editor/style.css 13.1 kB +527 B (+4%)
build/block-library/blocks/query/editor-rtl.css 131 B -679 B (-84%) 🏆
build/block-library/blocks/query/editor.css 132 B -677 B (-84%) 🏆
build/block-library/editor-rtl.css 9.47 kB -359 B (-4%)
build/block-library/editor.css 9.46 kB -361 B (-4%)
build/block-library/index.js 153 kB -821 B (-1%)
build/blocks/index.js 48.7 kB +114 B (0%)
build/components/index.js 288 kB +2.35 kB (+1%)
build/components/style-rtl.css 16.3 kB +73 B (0%)
build/components/style.css 16.3 kB +74 B (0%)
build/compose/index.js 11.6 kB -2 B (0%)
build/core-data/index.js 17 kB -152 B (-1%)
build/customize-widgets/index.js 8.27 kB +19 B (0%)
build/customize-widgets/style-rtl.css 666 B +36 B (+6%) 🔍
build/customize-widgets/style.css 667 B +36 B (+6%) 🔍
build/data-controls/index.js 838 B +2 B (0%)
build/data/index.js 9.2 kB +326 B (+4%)
build/dom-ready/index.js 576 B -1 B (0%)
build/dom/index.js 5.12 kB -1 B (0%)
build/edit-navigation/index.js 17.1 kB +62 B (0%)
build/edit-post/index.js 339 kB -54 B (0%)
build/edit-site/index.js 28.9 kB +134 B (0%)
build/edit-widgets/index.js 16.7 kB -2 B (0%)
build/editor/index.js 42.6 kB -3 B (0%)
build/element/index.js 4.62 kB -1 B (0%)
build/format-library/index.js 6.77 kB +3 B (0%)
build/html-entities/index.js 623 B +1 B (0%)
build/i18n/index.js 4.04 kB -1 B (0%)
build/is-shallow-equal/index.js 698 B -1 B (0%)
build/keycodes/index.js 1.95 kB -1 B (0%)
build/list-reusable-blocks/index.js 3.19 kB +1 B (0%)
build/media-utils/index.js 5.39 kB +1 B (0%)
build/nux/index.js 3.42 kB -1 B (0%)
build/plugins/index.js 2.95 kB -1 B (0%)
build/priority-queue/index.js 790 B -1 B (0%)
build/react-i18n/index.js 1.45 kB -1 B (0%)
build/redux-routine/index.js 2.83 kB -2 B (0%)
build/reusable-blocks/index.js 3.8 kB +1 B (0%)
build/rich-text/index.js 13.5 kB -3 B (0%)
build/server-side-render/index.js 2.6 kB +2 B (0%)
build/warning/index.js 1.14 kB -1 B (0%)
build/wordcount/index.js 1.22 kB +1 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.78 kB 0 B
build/blob/index.js 664 B 0 B
build/block-directory/style-rtl.css 1 kB 0 B
build/block-directory/style.css 1.01 kB 0 B
build/block-library/blocks/archives/editor-rtl.css 61 B 0 B
build/block-library/blocks/archives/editor.css 60 B 0 B
build/block-library/blocks/audio/editor-rtl.css 58 B 0 B
build/block-library/blocks/audio/editor.css 58 B 0 B
build/block-library/blocks/audio/style-rtl.css 112 B 0 B
build/block-library/blocks/audio/style.css 112 B 0 B
build/block-library/blocks/block/editor-rtl.css 161 B 0 B
build/block-library/blocks/block/editor.css 161 B 0 B
build/block-library/blocks/button/editor-rtl.css 475 B 0 B
build/block-library/blocks/button/editor.css 474 B 0 B
build/block-library/blocks/button/style-rtl.css 503 B 0 B
build/block-library/blocks/button/style.css 503 B 0 B
build/block-library/blocks/buttons/editor-rtl.css 315 B 0 B
build/block-library/blocks/buttons/editor.css 315 B 0 B
build/block-library/blocks/buttons/style-rtl.css 368 B 0 B
build/block-library/blocks/buttons/style.css 368 B 0 B
build/block-library/blocks/calendar/style-rtl.css 208 B 0 B
build/block-library/blocks/calendar/style.css 208 B 0 B
build/block-library/blocks/categories/editor-rtl.css 84 B 0 B
build/block-library/blocks/categories/editor.css 83 B 0 B
build/block-library/blocks/categories/style-rtl.css 79 B 0 B
build/block-library/blocks/categories/style.css 79 B 0 B
build/block-library/blocks/code/style-rtl.css 90 B 0 B
build/block-library/blocks/code/style.css 90 B 0 B
build/block-library/blocks/columns/editor-rtl.css 190 B 0 B
build/block-library/blocks/columns/editor.css 190 B 0 B
build/block-library/blocks/columns/style-rtl.css 436 B 0 B
build/block-library/blocks/columns/style.css 435 B 0 B
build/block-library/blocks/cover/editor-rtl.css 605 B 0 B
build/block-library/blocks/cover/editor.css 605 B 0 B
build/block-library/blocks/cover/style-rtl.css 1.23 kB 0 B
build/block-library/blocks/cover/style.css 1.23 kB 0 B
build/block-library/blocks/embed/editor-rtl.css 486 B 0 B
build/block-library/blocks/embed/editor.css 486 B 0 B
build/block-library/blocks/embed/style-rtl.css 401 B 0 B
build/block-library/blocks/embed/style.css 400 B 0 B
build/block-library/blocks/file/editor-rtl.css 301 B 0 B
build/block-library/blocks/file/editor.css 300 B 0 B
build/block-library/blocks/file/frontend.js 765 B 0 B
build/block-library/blocks/file/style-rtl.css 255 B 0 B
build/block-library/blocks/file/style.css 255 B 0 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB 0 B
build/block-library/blocks/freeform/editor.css 2.44 kB 0 B
build/block-library/blocks/gallery/editor-rtl.css 704 B 0 B
build/block-library/blocks/gallery/editor.css 705 B 0 B
build/block-library/blocks/gallery/style-rtl.css 1.09 kB 0 B
build/block-library/blocks/gallery/style.css 1.09 kB 0 B
build/block-library/blocks/group/editor-rtl.css 160 B 0 B
build/block-library/blocks/group/editor.css 160 B 0 B
build/block-library/blocks/group/style-rtl.css 57 B 0 B
build/block-library/blocks/group/style.css 57 B 0 B
build/block-library/blocks/heading/editor-rtl.css 129 B 0 B
build/block-library/blocks/heading/editor.css 129 B 0 B
build/block-library/blocks/heading/style-rtl.css 76 B 0 B
build/block-library/blocks/heading/style.css 76 B 0 B
build/block-library/blocks/html/editor-rtl.css 281 B 0 B
build/block-library/blocks/html/editor.css 281 B 0 B
build/block-library/blocks/image/editor-rtl.css 717 B 0 B
build/block-library/blocks/image/editor.css 716 B 0 B
build/block-library/blocks/image/style-rtl.css 476 B 0 B
build/block-library/blocks/image/style.css 478 B 0 B
build/block-library/blocks/latest-comments/style-rtl.css 281 B 0 B
build/block-library/blocks/latest-comments/style.css 282 B 0 B
build/block-library/blocks/latest-posts/editor-rtl.css 137 B 0 B
build/block-library/blocks/latest-posts/editor.css 137 B 0 B
build/block-library/blocks/latest-posts/style-rtl.css 523 B 0 B
build/block-library/blocks/latest-posts/style.css 522 B 0 B
build/block-library/blocks/legacy-widget/editor-rtl.css 398 B 0 B
build/block-library/blocks/legacy-widget/editor.css 399 B 0 B
build/block-library/blocks/list/style-rtl.css 63 B 0 B
build/block-library/blocks/list/style.css 63 B 0 B
build/block-library/blocks/media-text/editor-rtl.css 191 B 0 B
build/block-library/blocks/media-text/editor.css 191 B 0 B
build/block-library/blocks/media-text/style-rtl.css 535 B 0 B
build/block-library/blocks/media-text/style.css 532 B 0 B
build/block-library/blocks/more/editor-rtl.css 434 B 0 B
build/block-library/blocks/more/editor.css 434 B 0 B
build/block-library/blocks/navigation-link/editor-rtl.css 597 B 0 B
build/block-library/blocks/navigation-link/editor.css 597 B 0 B
build/block-library/blocks/navigation-link/style-rtl.css 1.07 kB 0 B
build/block-library/blocks/navigation-link/style.css 1.07 kB 0 B
build/block-library/blocks/navigation/editor-rtl.css 1.24 kB 0 B
build/block-library/blocks/navigation/editor.css 1.24 kB 0 B
build/block-library/blocks/navigation/style-rtl.css 272 B 0 B
build/block-library/blocks/navigation/style.css 271 B 0 B
build/block-library/blocks/nextpage/editor-rtl.css 395 B 0 B
build/block-library/blocks/nextpage/editor.css 395 B 0 B
build/block-library/blocks/page-list/editor-rtl.css 239 B 0 B
build/block-library/blocks/page-list/editor.css 240 B 0 B
build/block-library/blocks/page-list/style-rtl.css 167 B 0 B
build/block-library/blocks/page-list/style.css 167 B 0 B
build/block-library/blocks/paragraph/editor-rtl.css 157 B 0 B
build/block-library/blocks/paragraph/editor.css 157 B 0 B
build/block-library/blocks/paragraph/style-rtl.css 247 B 0 B
build/block-library/blocks/paragraph/style.css 248 B 0 B
build/block-library/blocks/post-author/editor-rtl.css 209 B 0 B
build/block-library/blocks/post-author/editor.css 209 B 0 B
build/block-library/blocks/post-author/style-rtl.css 183 B 0 B
build/block-library/blocks/post-author/style.css 184 B 0 B
build/block-library/blocks/post-comments-form/style-rtl.css 250 B 0 B
build/block-library/blocks/post-comments-form/style.css 250 B 0 B
build/block-library/blocks/post-content/editor-rtl.css 139 B 0 B
build/block-library/blocks/post-content/editor.css 139 B 0 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B 0 B
build/block-library/blocks/post-excerpt/editor.css 73 B 0 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B 0 B
build/block-library/blocks/post-excerpt/style.css 69 B 0 B
build/block-library/blocks/post-featured-image/editor-rtl.css 338 B 0 B
build/block-library/blocks/post-featured-image/editor.css 338 B 0 B
build/block-library/blocks/post-featured-image/style-rtl.css 100 B 0 B
build/block-library/blocks/post-featured-image/style.css 100 B 0 B
build/block-library/blocks/post-title/style-rtl.css 60 B 0 B
build/block-library/blocks/post-title/style.css 60 B 0 B
build/block-library/blocks/preformatted/style-rtl.css 103 B 0 B
build/block-library/blocks/preformatted/style.css 103 B 0 B
build/block-library/blocks/pullquote/editor-rtl.css 183 B 0 B
build/block-library/blocks/pullquote/editor.css 183 B 0 B
build/block-library/blocks/pullquote/style-rtl.css 318 B 0 B
build/block-library/blocks/pullquote/style.css 318 B 0 B
build/block-library/blocks/query-loop/editor-rtl.css 83 B 0 B
build/block-library/blocks/query-loop/editor.css 82 B 0 B
build/block-library/blocks/query-loop/style-rtl.css 315 B 0 B
build/block-library/blocks/query-loop/style.css 317 B 0 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B 0 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B 0 B
build/block-library/blocks/query-pagination/editor-rtl.css 270 B 0 B
build/block-library/blocks/query-pagination/editor.css 262 B 0 B
build/block-library/blocks/query-pagination/style-rtl.css 168 B 0 B
build/block-library/blocks/query-pagination/style.css 168 B 0 B
build/block-library/blocks/query-title/editor-rtl.css 86 B 0 B
build/block-library/blocks/query-title/editor.css 86 B 0 B
build/block-library/blocks/quote/style-rtl.css 169 B 0 B
build/block-library/blocks/quote/style.css 169 B 0 B
build/block-library/blocks/rss/editor-rtl.css 201 B 0 B
build/block-library/blocks/rss/editor.css 202 B 0 B
build/block-library/blocks/rss/style-rtl.css 290 B 0 B
build/block-library/blocks/rss/style.css 290 B 0 B
build/block-library/blocks/search/editor-rtl.css 189 B 0 B
build/block-library/blocks/search/editor.css 189 B 0 B
build/block-library/blocks/search/style-rtl.css 359 B 0 B
build/block-library/blocks/search/style.css 362 B 0 B
build/block-library/blocks/separator/editor-rtl.css 99 B 0 B
build/block-library/blocks/separator/editor.css 99 B 0 B
build/block-library/blocks/separator/style-rtl.css 251 B 0 B
build/block-library/blocks/separator/style.css 251 B 0 B
build/block-library/blocks/shortcode/editor-rtl.css 512 B 0 B
build/block-library/blocks/shortcode/editor.css 512 B 0 B
build/block-library/blocks/site-logo/editor-rtl.css 440 B 0 B
build/block-library/blocks/site-logo/editor.css 441 B 0 B
build/block-library/blocks/site-logo/style-rtl.css 154 B 0 B
build/block-library/blocks/site-logo/style.css 154 B 0 B
build/block-library/blocks/social-link/editor-rtl.css 164 B 0 B
build/block-library/blocks/social-link/editor.css 165 B 0 B
build/block-library/blocks/social-links/editor-rtl.css 796 B 0 B
build/block-library/blocks/social-links/editor.css 795 B 0 B
build/block-library/blocks/social-links/style-rtl.css 1.32 kB 0 B
build/block-library/blocks/social-links/style.css 1.33 kB 0 B
build/block-library/blocks/spacer/editor-rtl.css 308 B 0 B
build/block-library/blocks/spacer/editor.css 308 B 0 B
build/block-library/blocks/spacer/style-rtl.css 48 B 0 B
build/block-library/blocks/spacer/style.css 48 B 0 B
build/block-library/blocks/table/editor-rtl.css 478 B 0 B
build/block-library/blocks/table/editor.css 478 B 0 B
build/block-library/blocks/table/style-rtl.css 402 B 0 B
build/block-library/blocks/table/style.css 402 B 0 B
build/block-library/blocks/tag-cloud/editor-rtl.css 118 B 0 B
build/block-library/blocks/tag-cloud/editor.css 118 B 0 B
build/block-library/blocks/tag-cloud/style-rtl.css 94 B 0 B
build/block-library/blocks/tag-cloud/style.css 94 B 0 B
build/block-library/blocks/template-part/editor-rtl.css 552 B 0 B
build/block-library/blocks/template-part/editor.css 551 B 0 B
build/block-library/blocks/term-description/editor-rtl.css 90 B 0 B
build/block-library/blocks/term-description/editor.css 90 B 0 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B 0 B
build/block-library/blocks/text-columns/editor.css 95 B 0 B
build/block-library/blocks/text-columns/style-rtl.css 166 B 0 B
build/block-library/blocks/text-columns/style.css 166 B 0 B
build/block-library/blocks/verse/style-rtl.css 87 B 0 B
build/block-library/blocks/verse/style.css 87 B 0 B
build/block-library/blocks/video/editor-rtl.css 568 B 0 B
build/block-library/blocks/video/editor.css 569 B 0 B
build/block-library/blocks/video/style-rtl.css 173 B 0 B
build/block-library/blocks/video/style.css 173 B 0 B
build/block-library/common-rtl.css 1.31 kB 0 B
build/block-library/common.css 1.31 kB 0 B
build/block-library/reset-rtl.css 502 B 0 B
build/block-library/reset.css 503 B 0 B
build/block-library/style-rtl.css 9.44 kB 0 B
build/block-library/style.css 9.44 kB 0 B
build/block-library/theme-rtl.css 692 B 0 B
build/block-library/theme.css 693 B 0 B
build/block-serialization-default-parser/index.js 1.87 kB 0 B
build/block-serialization-spec-parser/index.js 3.06 kB 0 B
build/date/index.js 31.9 kB 0 B
build/deprecated/index.js 787 B 0 B
build/edit-navigation/style-rtl.css 2.86 kB 0 B
build/edit-navigation/style.css 2.86 kB 0 B
build/edit-post/classic-rtl.css 454 B 0 B
build/edit-post/classic.css 454 B 0 B
build/edit-post/style-rtl.css 6.96 kB 0 B
build/edit-post/style.css 6.95 kB 0 B
build/edit-site/style-rtl.css 4.9 kB 0 B
build/edit-site/style.css 4.89 kB 0 B
build/edit-widgets/style-rtl.css 2.97 kB 0 B
build/edit-widgets/style.css 2.98 kB 0 B
build/editor/style-rtl.css 3.9 kB 0 B
build/editor/style.css 3.9 kB 0 B
build/escape-html/index.js 735 B 0 B
build/format-library/style-rtl.css 637 B 0 B
build/format-library/style.css 639 B 0 B
build/hooks/index.js 2.28 kB 0 B
build/keyboard-shortcuts/index.js 2.53 kB 0 B
build/list-reusable-blocks/style-rtl.css 629 B 0 B
build/list-reusable-blocks/style.css 628 B 0 B
build/notices/index.js 1.85 kB 0 B
build/nux/style-rtl.css 731 B 0 B
build/nux/style.css 727 B 0 B
build/primitives/index.js 1.42 kB 0 B
build/reusable-blocks/style-rtl.css 225 B 0 B
build/reusable-blocks/style.css 225 B 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 3.01 kB 0 B
build/viewport/index.js 1.85 kB 0 B

compressed-size-action

@gziolo
Copy link
Member

gziolo commented Apr 21, 2021

There is a bug in the reporter which means we need to wait more to see it in action:

/home/runner/work/gutenberg/gutenberg/test/unit/GithubActionsReporter.js:14
const messages = getMessages( _aggregatedResults?.testResults );
^
SyntaxError: Unexpected token '.'

I'm waiting patiently 😄

@ockham
Copy link
Contributor Author

ockham commented Apr 21, 2021

There is a bug in the reporter which means we need to wait more to see it in action:

/home/runner/work/gutenberg/gutenberg/test/unit/GithubActionsReporter.js:14
const messages = getMessages( _aggregatedResults?.testResults );
^
SyntaxError: Unexpected token '.'

I'm waiting patiently 😄

Yeah, I think it's the ?. which isn't supported by Node 12. The Node 14 one isn't bothered by that (and the unit test fails as it should), but the error reporter doesn't make it to the GH diff 😕

@ockham
Copy link
Contributor Author

ockham commented Apr 21, 2021

Seems like we are actually generating annotations: https://github.com/WordPress/gutenberg/actions/runs/771200933 They just aren't displayed in the diff 🤔

Wonder if we're doing something wrong with regard to how we pass the filename and/or line and column...

@ockham
Copy link
Contributor Author

ockham commented Apr 21, 2021

Ah, I see it. We're extracting the wrong line number. From my local run:

Ran all test suites matching /test\/unit\/test\/index.test.js/i.
::error file=/Users/ockham/src/gutenberg/test/unit/test/index.test.js,line=93,col=5::Error: expect(received).toBe(expected) // Object.is equality%0A%0AExpected: "b"%0AReceived: "a"%0A    at Object.<anonymous> (/Users/ockham/src/gutenberg/test/unit/test/index.test.js:3:17)%0A    at Object.asyncJestTest (/Users/ockham/src/gutenberg/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)%0A    at /Users/ockham/src/gutenberg/node_modules/jest-jasmine2/build/queueRunner.js:45:12%0A    at new Promise (<anonymous>)%0A    at mapper (/Users/ockham/src/gutenberg/node_modules/jest-jasmine2/build/queueRunner.js:28:19)%0A    at /Users/ockham/src/gutenberg/node_modules/jest-jasmine2/build/queueRunner.js:75:41%0A    at processTicksAndRejections (internal/process/task_queues.js:93:5)

Note that we're setting line=93,col=5 -- which is coming from the last line in the stack trace:

at processTicksAndRejections (internal/process/task_queues.js:93:5)

whereas the correct location would be line=3,col=17, based on

at Object.<anonymous> (/Users/ockham/src/gutenberg/test/unit/test/index.test.js:3:17)

I'll try to fix the RegEx.

@ockham
Copy link
Contributor Author

ockham commented Apr 21, 2021

Copy link
Member

@gziolo gziolo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, feel free to experiment a bit more but don't let folks wait too long to see it in action 🎉

@ockham
Copy link
Contributor Author

ockham commented Apr 21, 2021

On the note of ANSI colors: I've noticed that Jest provides those as part of the items in the failureMessages array, e.g.

[
  {
    ancestorTitles: [ 'My test' ],
    duration: 5,
    failureDetails: [ [Object] ],
    failureMessages: [
      'Error: \x1B[2mexpect(\x1B[22m\x1B[31mreceived\x1B[39m\x1B[2m).\x1B[22mtoBe\x1B[2m(\x1B[22m\x1B[32mexpected\x1B[39m\x1B[2m) // Object.is equality\x1B[22m\n' +
        '\n' +
        'Expected: \x1B[32m"b"\x1B[39m\n' +
        'Received: \x1B[31m"a"\x1B[39m\n' +
        '    at Object.<anonymous> (/Users/bernhardreiter/src/gutenberg/test/unit/test/index.test.js:3:17)\n' +
        '    at Object.asyncJestTest (/Users/bernhardreiter/src/gutenberg/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)\n' +
        '    at /Users/bernhardreiter/src/gutenberg/node_modules/jest-jasmine2/build/queueRunner.js:45:12\n' +
        '    at new Promise (<anonymous>)\n' +
        '    at mapper (/Users/bernhardreiter/src/gutenberg/node_modules/jest-jasmine2/build/queueRunner.js:28:19)\n' +
        '    at /Users/bernhardreiter/src/gutenberg/node_modules/jest-jasmine2/build/queueRunner.js:75:41\n' +
        '    at processTicksAndRejections (internal/process/task_queues.js:93:5)'
    ],
    fullName: 'My test A equals B',
    location: null,
    numPassingAsserts: 0,
    status: 'failed',
    title: 'A equals B'
  }
]

However, the seem to get lost during processing in the reporter 🤔

@ockham
Copy link
Contributor Author

ockham commented Apr 22, 2021

I'll ignore the colors for now. I think that it's not specific to this reporter -- Jest normally uses colors to highlight test outcomes in its standard reporters, and those are apparently also lost (stripped by Jest?) in the GHA output.

@gziolo gziolo marked this pull request as ready for review April 22, 2021 14:59
@gziolo gziolo changed the title Tests: Try adding GHA Reporter Tests: Adds reporter that shows unit test errors on GitHub when executing GitHub workflows Apr 22, 2021
@gziolo
Copy link
Member

gziolo commented Apr 22, 2021

Will it work also with e2e tests? it would be more helpful there as they fail more often 😅

@ockham
Copy link
Contributor Author

ockham commented Apr 22, 2021

Will it work also with e2e tests? it would be more helpful there as they fail more often 😅

Ah, great question! I think it should, since they're also Jest-based. However, we'll need to add the reporter to the e2e tests' jest.config.js, and probably move it to a different location.

I'll give it a quick spin 👍

@ockham
Copy link
Contributor Author

ockham commented Apr 22, 2021

Pushed a few more commits, and moved the reporter to the scripts package, so it could be part of the "base" Jest configs for e2e (and unit) tests. Also pushed a (temporary) commit with an e2e test failure to demo that here.

@gziolo Care to give it another quick look if the changes I made to files in packages/scripts/ look okay?

@ockham ockham changed the title Tests: Adds reporter that shows unit test errors on GitHub when executing GitHub workflows Tests: Adds reporter that shows JS test errors on GitHub when executing GitHub workflows Apr 22, 2021
@gziolo
Copy link
Member

gziolo commented Apr 23, 2021

Care to give it another quick look if the changes I made to files in packages/scripts/ look okay?

Sure thing, everything looks good. I'm very excited about this integration!

I made a screenshot and reverted the enforced test failure:

Screen Shot 2021-04-23 at 08 20 10

@ockham
Copy link
Contributor Author

ockham commented Apr 23, 2021

I made a screenshot and reverted the enforced test failure

Awesome, thank you very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Package] Scripts /packages/scripts [Type] Automated Testing Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants