feat(ci): Add junit reporters to jest/vitest, codecov test results - #15341

Merged
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit
Feb 10, 2025
Merged

feat(ci): Add junit reporters to jest/vitest, codecov test results#15341
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit

Conversation

@billyvg

@billyvgbillyvg commented Feb 7, 2025

Copy link
Copy Markdown
Member

I noticed that not all of our tests were being tracked in codecov. This adds jest-junit reporter for our jest tests and configures vitest to use junit reporter (when CI env var is set).

This brings the number of tests tracked from ~700 to 4.5k

@billyvgbillyvg added the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The code changes predominantly center around integrating codecov reporting and 'jest-junit' into the project. While this is generally well done, there are some concerns to be addressed mainly regarding the error handling and reuse of code.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml Outdated
continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.xml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have hard-coded the path to the test results. This could potentially cause problems when the project structure changes. Consider moving this into a configuration file or an environment variable so that any potential changes in the project structure are easier to manage.

Comment thread.github/workflows/build.yml
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have chosen to use both the 'default' and 'junit' reporters. Ensure that using both these reporters together does not produce conflicting or duplicate reports.

Comment threadyarn.lock
version "16.0.0"
resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785"
integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==
dependencies:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The addition of the jest-junit package has introduced several new dependencies. Make sure these new dependancies do not cause conflicts with existing code or other packages.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The current code diff reflects an effort to integrate jest-junit to the project for test reporting and uploading those test results to Codecov in different jobs. However, there are some improvements necessary to ensure a more ideal behavior.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment threadjest/jest.config.js
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ensure that the junit reporter does not conflict with other reporters. Also, make sure it's supported by the installed version of vitest.

Comment threadvite/vite.config.ts
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],
outputFile: {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Double check the jest configurations and make sure that outputFile is a valid configuration option, as it's not recognized in the base jest configuration.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CodecovAI submitted a new review for 455666a

Comment threadjest/jest.config.js
coverage: {},
globals: true,
setupFiles: ['./setup-test.ts'],
reporters: ['default'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The 'default' reporter was removed from some vitest configurations, but it might be beneficial to leave this for local development. If you're aiming to use Junit reporter on CI and default reporter locally, you might want to consider a conditionally loaded configuration based on the environment (development vs CI).

Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', ...(process.env.CI ? ['junit'] : [])],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The test results filename should probably include the names of the individual test suites to prevent them from overwriting each other. Consider dynamically generating the output filename based on the test suite name.

@billyvgbillyvg removed the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025
continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: dev-packages/node-integration-tests

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: packages/remix

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@billyvg

Copy link
Copy Markdown
MemberAuthor

This brings the number of tests tracked from ~700 to 4.5k

@billyvg
billyvg marked this pull request as ready for review February 7, 2025 20:34
@billyvg
billyvg requested a review from a team as a code ownerFebruary 7, 2025 20:34
@billyvg
billyvg requested review from a team, chargome, joseph-sentry and s1gr1d and removed request for a teamFebruary 7, 2025 20:35

@joseph-sentryjoseph-sentry left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm from my end, just one optional enhancement you can make to the jest config to get some nice formatting for test names in the codecov UI

i see now that specifying the files using globs was necessary for the browser unit tests, although i'd expect the CLI to find those files, so i'll make an issue to look into that here

Comment threadjest/jest.config.js
billyvgand others added 3 commits February 7, 2025 15:57
Co-authored-by: joseph-sentry <136376984+joseph-sentry@users.noreply.github.com>
@codecov

codecovBot commented Feb 7, 2025

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completedFailedPassedSkipped
306130517
View the top 1 failed test(s) by shortest run time
transactions.test.tsShouldsendatransactionforinstrumentedserveractions
Stack Traces | 4.01s run time
transactions.test.ts:53:5Shouldsendatransactionforinstrumentedserveractions

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm!

@billyvg
billyvg merged commit d8369f7 into developFeb 10, 2025
@billyvg
billyvg deleted the feat-ci-jest-junit branch February 10, 2025 16:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@billyvg@chargome@joseph-sentry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(ci): Add junit reporters to jest/vitest, codecov test results - #15341

Merged
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit
Feb 10, 2025
Merged

feat(ci): Add junit reporters to jest/vitest, codecov test results#15341
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit

Conversation

@billyvg

@billyvgbillyvg commented Feb 7, 2025

Copy link
Copy Markdown
Member

I noticed that not all of our tests were being tracked in codecov. This adds jest-junit reporter for our jest tests and configures vitest to use junit reporter (when CI env var is set).

This brings the number of tests tracked from ~700 to 4.5k

@billyvgbillyvg added the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The code changes predominantly center around integrating codecov reporting and 'jest-junit' into the project. While this is generally well done, there are some concerns to be addressed mainly regarding the error handling and reuse of code.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml Outdated
continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.xml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have hard-coded the path to the test results. This could potentially cause problems when the project structure changes. Consider moving this into a configuration file or an environment variable so that any potential changes in the project structure are easier to manage.

Comment thread.github/workflows/build.yml
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have chosen to use both the 'default' and 'junit' reporters. Ensure that using both these reporters together does not produce conflicting or duplicate reports.

Comment threadyarn.lock
version "16.0.0"
resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785"
integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==
dependencies:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The addition of the jest-junit package has introduced several new dependencies. Make sure these new dependancies do not cause conflicts with existing code or other packages.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The current code diff reflects an effort to integrate jest-junit to the project for test reporting and uploading those test results to Codecov in different jobs. However, there are some improvements necessary to ensure a more ideal behavior.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment threadjest/jest.config.js
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ensure that the junit reporter does not conflict with other reporters. Also, make sure it's supported by the installed version of vitest.

Comment threadvite/vite.config.ts
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],
outputFile: {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Double check the jest configurations and make sure that outputFile is a valid configuration option, as it's not recognized in the base jest configuration.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CodecovAI submitted a new review for 455666a

Comment threadjest/jest.config.js
coverage: {},
globals: true,
setupFiles: ['./setup-test.ts'],
reporters: ['default'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The 'default' reporter was removed from some vitest configurations, but it might be beneficial to leave this for local development. If you're aiming to use Junit reporter on CI and default reporter locally, you might want to consider a conditionally loaded configuration based on the environment (development vs CI).

Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', ...(process.env.CI ? ['junit'] : [])],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The test results filename should probably include the names of the individual test suites to prevent them from overwriting each other. Consider dynamically generating the output filename based on the test suite name.

@billyvgbillyvg removed the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025
continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: dev-packages/node-integration-tests

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: packages/remix

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@billyvg

Copy link
Copy Markdown
MemberAuthor

This brings the number of tests tracked from ~700 to 4.5k

@billyvg
billyvg marked this pull request as ready for review February 7, 2025 20:34
@billyvg
billyvg requested a review from a team as a code ownerFebruary 7, 2025 20:34
@billyvg
billyvg requested review from a team, chargome, joseph-sentry and s1gr1d and removed request for a teamFebruary 7, 2025 20:35

@joseph-sentryjoseph-sentry left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm from my end, just one optional enhancement you can make to the jest config to get some nice formatting for test names in the codecov UI

i see now that specifying the files using globs was necessary for the browser unit tests, although i'd expect the CLI to find those files, so i'll make an issue to look into that here

Comment threadjest/jest.config.js
billyvgand others added 3 commits February 7, 2025 15:57
Co-authored-by: joseph-sentry <136376984+joseph-sentry@users.noreply.github.com>
@codecov

codecovBot commented Feb 7, 2025

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completedFailedPassedSkipped
306130517
View the top 1 failed test(s) by shortest run time
transactions.test.tsShouldsendatransactionforinstrumentedserveractions
Stack Traces | 4.01s run time
transactions.test.ts:53:5Shouldsendatransactionforinstrumentedserveractions

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm!

@billyvg
billyvg merged commit d8369f7 into developFeb 10, 2025
@billyvg
billyvg deleted the feat-ci-jest-junit branch February 10, 2025 16:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@billyvg@chargome@joseph-sentry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(ci): Add junit reporters to jest/vitest, codecov test results - #15341

Merged
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit
Feb 10, 2025
Merged

feat(ci): Add junit reporters to jest/vitest, codecov test results#15341
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit

Conversation

@billyvg

@billyvgbillyvg commented Feb 7, 2025

Copy link
Copy Markdown
Member

I noticed that not all of our tests were being tracked in codecov. This adds jest-junit reporter for our jest tests and configures vitest to use junit reporter (when CI env var is set).

This brings the number of tests tracked from ~700 to 4.5k

@billyvgbillyvg added the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The code changes predominantly center around integrating codecov reporting and 'jest-junit' into the project. While this is generally well done, there are some concerns to be addressed mainly regarding the error handling and reuse of code.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml Outdated
continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.xml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have hard-coded the path to the test results. This could potentially cause problems when the project structure changes. Consider moving this into a configuration file or an environment variable so that any potential changes in the project structure are easier to manage.

Comment thread.github/workflows/build.yml
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have chosen to use both the 'default' and 'junit' reporters. Ensure that using both these reporters together does not produce conflicting or duplicate reports.

Comment threadyarn.lock
version "16.0.0"
resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785"
integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==
dependencies:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The addition of the jest-junit package has introduced several new dependencies. Make sure these new dependancies do not cause conflicts with existing code or other packages.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The current code diff reflects an effort to integrate jest-junit to the project for test reporting and uploading those test results to Codecov in different jobs. However, there are some improvements necessary to ensure a more ideal behavior.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment threadjest/jest.config.js
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ensure that the junit reporter does not conflict with other reporters. Also, make sure it's supported by the installed version of vitest.

Comment threadvite/vite.config.ts
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],
outputFile: {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Double check the jest configurations and make sure that outputFile is a valid configuration option, as it's not recognized in the base jest configuration.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CodecovAI submitted a new review for 455666a

Comment threadjest/jest.config.js
coverage: {},
globals: true,
setupFiles: ['./setup-test.ts'],
reporters: ['default'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The 'default' reporter was removed from some vitest configurations, but it might be beneficial to leave this for local development. If you're aiming to use Junit reporter on CI and default reporter locally, you might want to consider a conditionally loaded configuration based on the environment (development vs CI).

Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', ...(process.env.CI ? ['junit'] : [])],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The test results filename should probably include the names of the individual test suites to prevent them from overwriting each other. Consider dynamically generating the output filename based on the test suite name.

@billyvgbillyvg removed the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025
continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: dev-packages/node-integration-tests

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: packages/remix

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@billyvg

Copy link
Copy Markdown
MemberAuthor

This brings the number of tests tracked from ~700 to 4.5k

@billyvg
billyvg marked this pull request as ready for review February 7, 2025 20:34
@billyvg
billyvg requested a review from a team as a code ownerFebruary 7, 2025 20:34
@billyvg
billyvg requested review from a team, chargome, joseph-sentry and s1gr1d and removed request for a teamFebruary 7, 2025 20:35

@joseph-sentryjoseph-sentry left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm from my end, just one optional enhancement you can make to the jest config to get some nice formatting for test names in the codecov UI

i see now that specifying the files using globs was necessary for the browser unit tests, although i'd expect the CLI to find those files, so i'll make an issue to look into that here

Comment threadjest/jest.config.js
billyvgand others added 3 commits February 7, 2025 15:57
Co-authored-by: joseph-sentry <136376984+joseph-sentry@users.noreply.github.com>
@codecov

codecovBot commented Feb 7, 2025

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completedFailedPassedSkipped
306130517
View the top 1 failed test(s) by shortest run time
transactions.test.tsShouldsendatransactionforinstrumentedserveractions
Stack Traces | 4.01s run time
transactions.test.ts:53:5Shouldsendatransactionforinstrumentedserveractions

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm!

@billyvg
billyvg merged commit d8369f7 into developFeb 10, 2025
@billyvg
billyvg deleted the feat-ci-jest-junit branch February 10, 2025 16:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@billyvg@chargome@joseph-sentry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(ci): Add junit reporters to jest/vitest, codecov test results - #15341

Merged
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit
Feb 10, 2025
Merged

feat(ci): Add junit reporters to jest/vitest, codecov test results#15341
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit

Conversation

@billyvg

@billyvgbillyvg commented Feb 7, 2025

Copy link
Copy Markdown
Member

I noticed that not all of our tests were being tracked in codecov. This adds jest-junit reporter for our jest tests and configures vitest to use junit reporter (when CI env var is set).

This brings the number of tests tracked from ~700 to 4.5k

@billyvgbillyvg added the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The code changes predominantly center around integrating codecov reporting and 'jest-junit' into the project. While this is generally well done, there are some concerns to be addressed mainly regarding the error handling and reuse of code.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml Outdated
continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.xml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have hard-coded the path to the test results. This could potentially cause problems when the project structure changes. Consider moving this into a configuration file or an environment variable so that any potential changes in the project structure are easier to manage.

Comment thread.github/workflows/build.yml
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have chosen to use both the 'default' and 'junit' reporters. Ensure that using both these reporters together does not produce conflicting or duplicate reports.

Comment threadyarn.lock
version "16.0.0"
resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785"
integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==
dependencies:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The addition of the jest-junit package has introduced several new dependencies. Make sure these new dependancies do not cause conflicts with existing code or other packages.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The current code diff reflects an effort to integrate jest-junit to the project for test reporting and uploading those test results to Codecov in different jobs. However, there are some improvements necessary to ensure a more ideal behavior.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment threadjest/jest.config.js
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ensure that the junit reporter does not conflict with other reporters. Also, make sure it's supported by the installed version of vitest.

Comment threadvite/vite.config.ts
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],
outputFile: {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Double check the jest configurations and make sure that outputFile is a valid configuration option, as it's not recognized in the base jest configuration.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CodecovAI submitted a new review for 455666a

Comment threadjest/jest.config.js
coverage: {},
globals: true,
setupFiles: ['./setup-test.ts'],
reporters: ['default'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The 'default' reporter was removed from some vitest configurations, but it might be beneficial to leave this for local development. If you're aiming to use Junit reporter on CI and default reporter locally, you might want to consider a conditionally loaded configuration based on the environment (development vs CI).

Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', ...(process.env.CI ? ['junit'] : [])],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The test results filename should probably include the names of the individual test suites to prevent them from overwriting each other. Consider dynamically generating the output filename based on the test suite name.

@billyvgbillyvg removed the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025
continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: dev-packages/node-integration-tests

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: packages/remix

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@billyvg

Copy link
Copy Markdown
MemberAuthor

This brings the number of tests tracked from ~700 to 4.5k

@billyvg
billyvg marked this pull request as ready for review February 7, 2025 20:34
@billyvg
billyvg requested a review from a team as a code ownerFebruary 7, 2025 20:34
@billyvg
billyvg requested review from a team, chargome, joseph-sentry and s1gr1d and removed request for a teamFebruary 7, 2025 20:35

@joseph-sentryjoseph-sentry left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm from my end, just one optional enhancement you can make to the jest config to get some nice formatting for test names in the codecov UI

i see now that specifying the files using globs was necessary for the browser unit tests, although i'd expect the CLI to find those files, so i'll make an issue to look into that here

Comment threadjest/jest.config.js
billyvgand others added 3 commits February 7, 2025 15:57
Co-authored-by: joseph-sentry <136376984+joseph-sentry@users.noreply.github.com>
@codecov

codecovBot commented Feb 7, 2025

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completedFailedPassedSkipped
306130517
View the top 1 failed test(s) by shortest run time
transactions.test.tsShouldsendatransactionforinstrumentedserveractions
Stack Traces | 4.01s run time
transactions.test.ts:53:5Shouldsendatransactionforinstrumentedserveractions

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm!

@billyvg
billyvg merged commit d8369f7 into developFeb 10, 2025
@billyvg
billyvg deleted the feat-ci-jest-junit branch February 10, 2025 16:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@billyvg@chargome@joseph-sentry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(ci): Add junit reporters to jest/vitest, codecov test results - #15341

Merged
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit
Feb 10, 2025
Merged

feat(ci): Add junit reporters to jest/vitest, codecov test results#15341
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit

Conversation

@billyvg

@billyvgbillyvg commented Feb 7, 2025

Copy link
Copy Markdown
Member

I noticed that not all of our tests were being tracked in codecov. This adds jest-junit reporter for our jest tests and configures vitest to use junit reporter (when CI env var is set).

This brings the number of tests tracked from ~700 to 4.5k

@billyvgbillyvg added the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The code changes predominantly center around integrating codecov reporting and 'jest-junit' into the project. While this is generally well done, there are some concerns to be addressed mainly regarding the error handling and reuse of code.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml Outdated
continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.xml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have hard-coded the path to the test results. This could potentially cause problems when the project structure changes. Consider moving this into a configuration file or an environment variable so that any potential changes in the project structure are easier to manage.

Comment thread.github/workflows/build.yml
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have chosen to use both the 'default' and 'junit' reporters. Ensure that using both these reporters together does not produce conflicting or duplicate reports.

Comment threadyarn.lock
version "16.0.0"
resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785"
integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==
dependencies:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The addition of the jest-junit package has introduced several new dependencies. Make sure these new dependancies do not cause conflicts with existing code or other packages.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The current code diff reflects an effort to integrate jest-junit to the project for test reporting and uploading those test results to Codecov in different jobs. However, there are some improvements necessary to ensure a more ideal behavior.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment threadjest/jest.config.js
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ensure that the junit reporter does not conflict with other reporters. Also, make sure it's supported by the installed version of vitest.

Comment threadvite/vite.config.ts
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],
outputFile: {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Double check the jest configurations and make sure that outputFile is a valid configuration option, as it's not recognized in the base jest configuration.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CodecovAI submitted a new review for 455666a

Comment threadjest/jest.config.js
coverage: {},
globals: true,
setupFiles: ['./setup-test.ts'],
reporters: ['default'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The 'default' reporter was removed from some vitest configurations, but it might be beneficial to leave this for local development. If you're aiming to use Junit reporter on CI and default reporter locally, you might want to consider a conditionally loaded configuration based on the environment (development vs CI).

Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', ...(process.env.CI ? ['junit'] : [])],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The test results filename should probably include the names of the individual test suites to prevent them from overwriting each other. Consider dynamically generating the output filename based on the test suite name.

@billyvgbillyvg removed the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025
continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: dev-packages/node-integration-tests

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: packages/remix

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@billyvg

Copy link
Copy Markdown
MemberAuthor

This brings the number of tests tracked from ~700 to 4.5k

@billyvg
billyvg marked this pull request as ready for review February 7, 2025 20:34
@billyvg
billyvg requested a review from a team as a code ownerFebruary 7, 2025 20:34
@billyvg
billyvg requested review from a team, chargome, joseph-sentry and s1gr1d and removed request for a teamFebruary 7, 2025 20:35

@joseph-sentryjoseph-sentry left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm from my end, just one optional enhancement you can make to the jest config to get some nice formatting for test names in the codecov UI

i see now that specifying the files using globs was necessary for the browser unit tests, although i'd expect the CLI to find those files, so i'll make an issue to look into that here

Comment threadjest/jest.config.js
billyvgand others added 3 commits February 7, 2025 15:57
Co-authored-by: joseph-sentry <136376984+joseph-sentry@users.noreply.github.com>
@codecov

codecovBot commented Feb 7, 2025

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completedFailedPassedSkipped
306130517
View the top 1 failed test(s) by shortest run time
transactions.test.tsShouldsendatransactionforinstrumentedserveractions
Stack Traces | 4.01s run time
transactions.test.ts:53:5Shouldsendatransactionforinstrumentedserveractions

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm!

@billyvg
billyvg merged commit d8369f7 into developFeb 10, 2025
@billyvg
billyvg deleted the feat-ci-jest-junit branch February 10, 2025 16:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@billyvg@chargome@joseph-sentry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(ci): Add junit reporters to jest/vitest, codecov test results - #15341

Merged
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit
Feb 10, 2025
Merged

feat(ci): Add junit reporters to jest/vitest, codecov test results#15341
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit

Conversation

@billyvg

@billyvgbillyvg commented Feb 7, 2025

Copy link
Copy Markdown
Member

I noticed that not all of our tests were being tracked in codecov. This adds jest-junit reporter for our jest tests and configures vitest to use junit reporter (when CI env var is set).

This brings the number of tests tracked from ~700 to 4.5k

@billyvgbillyvg added the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The code changes predominantly center around integrating codecov reporting and 'jest-junit' into the project. While this is generally well done, there are some concerns to be addressed mainly regarding the error handling and reuse of code.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml Outdated
continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.xml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have hard-coded the path to the test results. This could potentially cause problems when the project structure changes. Consider moving this into a configuration file or an environment variable so that any potential changes in the project structure are easier to manage.

Comment thread.github/workflows/build.yml
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have chosen to use both the 'default' and 'junit' reporters. Ensure that using both these reporters together does not produce conflicting or duplicate reports.

Comment threadyarn.lock
version "16.0.0"
resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785"
integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==
dependencies:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The addition of the jest-junit package has introduced several new dependencies. Make sure these new dependancies do not cause conflicts with existing code or other packages.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The current code diff reflects an effort to integrate jest-junit to the project for test reporting and uploading those test results to Codecov in different jobs. However, there are some improvements necessary to ensure a more ideal behavior.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment threadjest/jest.config.js
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ensure that the junit reporter does not conflict with other reporters. Also, make sure it's supported by the installed version of vitest.

Comment threadvite/vite.config.ts
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],
outputFile: {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Double check the jest configurations and make sure that outputFile is a valid configuration option, as it's not recognized in the base jest configuration.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CodecovAI submitted a new review for 455666a

Comment threadjest/jest.config.js
coverage: {},
globals: true,
setupFiles: ['./setup-test.ts'],
reporters: ['default'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The 'default' reporter was removed from some vitest configurations, but it might be beneficial to leave this for local development. If you're aiming to use Junit reporter on CI and default reporter locally, you might want to consider a conditionally loaded configuration based on the environment (development vs CI).

Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', ...(process.env.CI ? ['junit'] : [])],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The test results filename should probably include the names of the individual test suites to prevent them from overwriting each other. Consider dynamically generating the output filename based on the test suite name.

@billyvgbillyvg removed the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025
continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: dev-packages/node-integration-tests

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: packages/remix

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@billyvg

Copy link
Copy Markdown
MemberAuthor

This brings the number of tests tracked from ~700 to 4.5k

@billyvg
billyvg marked this pull request as ready for review February 7, 2025 20:34
@billyvg
billyvg requested a review from a team as a code ownerFebruary 7, 2025 20:34
@billyvg
billyvg requested review from a team, chargome, joseph-sentry and s1gr1d and removed request for a teamFebruary 7, 2025 20:35

@joseph-sentryjoseph-sentry left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm from my end, just one optional enhancement you can make to the jest config to get some nice formatting for test names in the codecov UI

i see now that specifying the files using globs was necessary for the browser unit tests, although i'd expect the CLI to find those files, so i'll make an issue to look into that here

Comment threadjest/jest.config.js
billyvgand others added 3 commits February 7, 2025 15:57
Co-authored-by: joseph-sentry <136376984+joseph-sentry@users.noreply.github.com>
@codecov

codecovBot commented Feb 7, 2025

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completedFailedPassedSkipped
306130517
View the top 1 failed test(s) by shortest run time
transactions.test.tsShouldsendatransactionforinstrumentedserveractions
Stack Traces | 4.01s run time
transactions.test.ts:53:5Shouldsendatransactionforinstrumentedserveractions

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm!

@billyvg
billyvg merged commit d8369f7 into developFeb 10, 2025
@billyvg
billyvg deleted the feat-ci-jest-junit branch February 10, 2025 16:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@billyvg@chargome@joseph-sentry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(ci): Add junit reporters to jest/vitest, codecov test results - #15341

Merged
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit
Feb 10, 2025
Merged

feat(ci): Add junit reporters to jest/vitest, codecov test results#15341
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit

Conversation

@billyvg

@billyvgbillyvg commented Feb 7, 2025

Copy link
Copy Markdown
Member

I noticed that not all of our tests were being tracked in codecov. This adds jest-junit reporter for our jest tests and configures vitest to use junit reporter (when CI env var is set).

This brings the number of tests tracked from ~700 to 4.5k

@billyvgbillyvg added the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The code changes predominantly center around integrating codecov reporting and 'jest-junit' into the project. While this is generally well done, there are some concerns to be addressed mainly regarding the error handling and reuse of code.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml Outdated
continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.xml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have hard-coded the path to the test results. This could potentially cause problems when the project structure changes. Consider moving this into a configuration file or an environment variable so that any potential changes in the project structure are easier to manage.

Comment thread.github/workflows/build.yml
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have chosen to use both the 'default' and 'junit' reporters. Ensure that using both these reporters together does not produce conflicting or duplicate reports.

Comment threadyarn.lock
version "16.0.0"
resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785"
integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==
dependencies:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The addition of the jest-junit package has introduced several new dependencies. Make sure these new dependancies do not cause conflicts with existing code or other packages.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The current code diff reflects an effort to integrate jest-junit to the project for test reporting and uploading those test results to Codecov in different jobs. However, there are some improvements necessary to ensure a more ideal behavior.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment threadjest/jest.config.js
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ensure that the junit reporter does not conflict with other reporters. Also, make sure it's supported by the installed version of vitest.

Comment threadvite/vite.config.ts
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],
outputFile: {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Double check the jest configurations and make sure that outputFile is a valid configuration option, as it's not recognized in the base jest configuration.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CodecovAI submitted a new review for 455666a

Comment threadjest/jest.config.js
coverage: {},
globals: true,
setupFiles: ['./setup-test.ts'],
reporters: ['default'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The 'default' reporter was removed from some vitest configurations, but it might be beneficial to leave this for local development. If you're aiming to use Junit reporter on CI and default reporter locally, you might want to consider a conditionally loaded configuration based on the environment (development vs CI).

Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', ...(process.env.CI ? ['junit'] : [])],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The test results filename should probably include the names of the individual test suites to prevent them from overwriting each other. Consider dynamically generating the output filename based on the test suite name.

@billyvgbillyvg removed the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025
continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: dev-packages/node-integration-tests

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: packages/remix

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@billyvg

Copy link
Copy Markdown
MemberAuthor

This brings the number of tests tracked from ~700 to 4.5k

@billyvg
billyvg marked this pull request as ready for review February 7, 2025 20:34
@billyvg
billyvg requested a review from a team as a code ownerFebruary 7, 2025 20:34
@billyvg
billyvg requested review from a team, chargome, joseph-sentry and s1gr1d and removed request for a teamFebruary 7, 2025 20:35

@joseph-sentryjoseph-sentry left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm from my end, just one optional enhancement you can make to the jest config to get some nice formatting for test names in the codecov UI

i see now that specifying the files using globs was necessary for the browser unit tests, although i'd expect the CLI to find those files, so i'll make an issue to look into that here

Comment threadjest/jest.config.js
billyvgand others added 3 commits February 7, 2025 15:57
Co-authored-by: joseph-sentry <136376984+joseph-sentry@users.noreply.github.com>
@codecov

codecovBot commented Feb 7, 2025

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completedFailedPassedSkipped
306130517
View the top 1 failed test(s) by shortest run time
transactions.test.tsShouldsendatransactionforinstrumentedserveractions
Stack Traces | 4.01s run time
transactions.test.ts:53:5Shouldsendatransactionforinstrumentedserveractions

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm!

@billyvg
billyvg merged commit d8369f7 into developFeb 10, 2025
@billyvg
billyvg deleted the feat-ci-jest-junit branch February 10, 2025 16:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@billyvg@chargome@joseph-sentry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(ci): Add junit reporters to jest/vitest, codecov test results - #15341

Merged
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit
Feb 10, 2025
Merged

feat(ci): Add junit reporters to jest/vitest, codecov test results#15341
billyvg merged 6 commits into
developfrom
feat-ci-jest-junit

Conversation

@billyvg

@billyvgbillyvg commented Feb 7, 2025

Copy link
Copy Markdown
Member

I noticed that not all of our tests were being tracked in codecov. This adds jest-junit reporter for our jest tests and configures vitest to use junit reporter (when CI env var is set).

This brings the number of tests tracked from ~700 to 4.5k

@billyvgbillyvg added the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The code changes predominantly center around integrating codecov reporting and 'jest-junit' into the project. While this is generally well done, there are some concerns to be addressed mainly regarding the error handling and reuse of code.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml Outdated
continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.xml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have hard-coded the path to the test results. This could potentially cause problems when the project structure changes. Consider moving this into a configuration file or an environment variable so that any potential changes in the project structure are easier to manage.

Comment thread.github/workflows/build.yml
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

You have chosen to use both the 'default' and 'junit' reporters. Ensure that using both these reporters together does not produce conflicting or duplicate reports.

Comment threadyarn.lock
version "16.0.0"
resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785"
integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==
dependencies:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The addition of the jest-junit package has introduced several new dependencies. Make sure these new dependancies do not cause conflicts with existing code or other packages.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The current code diff reflects an effort to integrate jest-junit to the project for test reporting and uploading those test results to Codecov in different jobs. However, there are some improvements necessary to ensure a more ideal behavior.

Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment thread.github/workflows/build.yml
Comment threadjest/jest.config.js
Comment threadpackage.json
Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ensure that the junit reporter does not conflict with other reporters. Also, make sure it's supported by the installed version of vitest.

Comment threadvite/vite.config.ts
reportsDirectory: './coverage',
},
reporters: ['default', 'junit'],
outputFile: {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Double check the jest configurations and make sure that outputFile is a valid configuration option, as it's not recognized in the base jest configuration.

@codecovcodecovBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CodecovAI submitted a new review for 455666a

Comment threadjest/jest.config.js
coverage: {},
globals: true,
setupFiles: ['./setup-test.ts'],
reporters: ['default'],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The 'default' reporter was removed from some vitest configurations, but it might be beneficial to leave this for local development. If you're aiming to use Junit reporter on CI and default reporter locally, you might want to consider a conditionally loaded configuration based on the environment (development vs CI).

Comment threadvite/vite.config.ts Outdated
enabled: true,
reportsDirectory: './coverage',
},
reporters: ['default', ...(process.env.CI ? ['junit'] : [])],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The test results filename should probably include the names of the individual test suites to prevent them from overwriting each other. Consider dynamically generating the output filename based on the test suite name.

@billyvgbillyvg removed the ci-codecov-ai-review AI Review by Codecov label Feb 7, 2025
continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: dev-packages/node-integration-tests

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
directory: packages/remix

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

continue-on-error: true
uses: codecov/test-results-action@v1
with:
files: packages/**/*.junit.xml

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@billyvg

Copy link
Copy Markdown
MemberAuthor

This brings the number of tests tracked from ~700 to 4.5k

@billyvg
billyvg marked this pull request as ready for review February 7, 2025 20:34
@billyvg
billyvg requested a review from a team as a code ownerFebruary 7, 2025 20:34
@billyvg
billyvg requested review from a team, chargome, joseph-sentry and s1gr1d and removed request for a teamFebruary 7, 2025 20:35

@joseph-sentryjoseph-sentry left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm from my end, just one optional enhancement you can make to the jest config to get some nice formatting for test names in the codecov UI

i see now that specifying the files using globs was necessary for the browser unit tests, although i'd expect the CLI to find those files, so i'll make an issue to look into that here

Comment threadjest/jest.config.js
billyvgand others added 3 commits February 7, 2025 15:57
Co-authored-by: joseph-sentry <136376984+joseph-sentry@users.noreply.github.com>
@codecov

codecovBot commented Feb 7, 2025

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completedFailedPassedSkipped
306130517
View the top 1 failed test(s) by shortest run time
transactions.test.tsShouldsendatransactionforinstrumentedserveractions
Stack Traces | 4.01s run time
transactions.test.ts:53:5Shouldsendatransactionforinstrumentedserveractions

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@chargomechargome left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm!

@billyvg
billyvg merged commit d8369f7 into developFeb 10, 2025
@billyvg
billyvg deleted the feat-ci-jest-junit branch February 10, 2025 16:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@billyvg@chargome@joseph-sentry