Repository files navigation

Pytest GitHub Report

PyPI version

This is an example of how we can use GitHub reports with pytest to generate a nice markdown matrix of results. The tests here are from the pytest-md-report repository.

Usage

Install from Pypi

You can install from Pypi

$ pip install pytest-github-report

Local

First, install dependencies:

$ pip install -r requirements.txt

And then run tests to see the markdown output (that will get piped into GitHub):

$ pytest --github-report tests/

This markdown output is provided via pytest-md-report and you can see other ways to customize it there!

GitHub Actions

To make this work in GitHub actions, it's actually very simple! You can either run the same command:

 - name: Report via Command Linerun: pytest --github-report tests

Or export via the environment (e.g., good if you don't want to change your default testing command but want it to work during GitHub actions).

 - name: Report via Environmentenv:
pytest_github_report: truerun: pytest tests

Configuration

Advanced configuration can be done via the environment since we are scoping to GitHub actions.

Enable

If you want to have the report work from the environment (ideal if you don't want to change the command to run your tests) you can do:

export pytest_github_report=true

If that value is found with any none Null value (e.g., True or yes) a report will be generated given this module is installed.

Title

To set a particular title for your report:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: "Formatting"run: pytest tests

Zeros

By default, we only show colored emojis to indicate a success or failure. To use a count (value) instead:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_zeros: truerun: pytest tests

Blanks

Or a blank value:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_blanks: truerun: pytest tests

Detail

By default, we output a simplified view, which is pytest_verbosity: 0. You actually have two options for verbosity: This first is the default (0), which shows a summary by file:

 - name: Report via Environmentenv:
pytest_verbosity: 0run: pytest --github-report tests

Notice below that although the table shows summary by file, the output section shows both failures within the file:

img/report-simple.png

The second shows per test results (adding the function name) and adds more detail to the matrix:

 - name: Report via Environmentenv:
pytest_verbosity: 2run: pytest --github-report tests

img/report-verbosity.png

In this case, the detail is on the level of the function. But either way, detail is printed below the matrix, as you can see above!

Emojis

Choose the emijos (or characters) you want for your tests! A helpful emoji guide is here.

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: ":unicorn: Report With Custom Emojis :unicorn:"pytest_passed_emoji: ":green_heart:"pytest_failed_emoji: ":heart:"pytest_xpassed_emoji: ":bangbang:"pytest_xfailed_emoji: ":bangbang:"pytest_skipped_emoji: ":shipit:"run: pytest tests

Here is an example with the custom emojis above!

img/report-custom-emojis.png

You can see the GitHub workflow for these examples.

Thanks!

The markdown functionality here is based off of thombashi/pytest-md-report which is released under an MIT license that we credit in .github/LICENSE.

About

Generate markdown report for pytest tests in GitHub actions

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, '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

Repository files navigation

Pytest GitHub Report

PyPI version

This is an example of how we can use GitHub reports with pytest to generate a nice markdown matrix of results. The tests here are from the pytest-md-report repository.

Usage

Install from Pypi

You can install from Pypi

$ pip install pytest-github-report

Local

First, install dependencies:

$ pip install -r requirements.txt

And then run tests to see the markdown output (that will get piped into GitHub):

$ pytest --github-report tests/

This markdown output is provided via pytest-md-report and you can see other ways to customize it there!

GitHub Actions

To make this work in GitHub actions, it's actually very simple! You can either run the same command:

 - name: Report via Command Linerun: pytest --github-report tests

Or export via the environment (e.g., good if you don't want to change your default testing command but want it to work during GitHub actions).

 - name: Report via Environmentenv:
pytest_github_report: truerun: pytest tests

Configuration

Advanced configuration can be done via the environment since we are scoping to GitHub actions.

Enable

If you want to have the report work from the environment (ideal if you don't want to change the command to run your tests) you can do:

export pytest_github_report=true

If that value is found with any none Null value (e.g., True or yes) a report will be generated given this module is installed.

Title

To set a particular title for your report:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: "Formatting"run: pytest tests

Zeros

By default, we only show colored emojis to indicate a success or failure. To use a count (value) instead:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_zeros: truerun: pytest tests

Blanks

Or a blank value:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_blanks: truerun: pytest tests

Detail

By default, we output a simplified view, which is pytest_verbosity: 0. You actually have two options for verbosity: This first is the default (0), which shows a summary by file:

 - name: Report via Environmentenv:
pytest_verbosity: 0run: pytest --github-report tests

Notice below that although the table shows summary by file, the output section shows both failures within the file:

img/report-simple.png

The second shows per test results (adding the function name) and adds more detail to the matrix:

 - name: Report via Environmentenv:
pytest_verbosity: 2run: pytest --github-report tests

img/report-verbosity.png

In this case, the detail is on the level of the function. But either way, detail is printed below the matrix, as you can see above!

Emojis

Choose the emijos (or characters) you want for your tests! A helpful emoji guide is here.

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: ":unicorn: Report With Custom Emojis :unicorn:"pytest_passed_emoji: ":green_heart:"pytest_failed_emoji: ":heart:"pytest_xpassed_emoji: ":bangbang:"pytest_xfailed_emoji: ":bangbang:"pytest_skipped_emoji: ":shipit:"run: pytest tests

Here is an example with the custom emojis above!

img/report-custom-emojis.png

You can see the GitHub workflow for these examples.

Thanks!

The markdown functionality here is based off of thombashi/pytest-md-report which is released under an MIT license that we credit in .github/LICENSE.

About

Generate markdown report for pytest tests in GitHub actions

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, '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

Repository files navigation

Pytest GitHub Report

PyPI version

This is an example of how we can use GitHub reports with pytest to generate a nice markdown matrix of results. The tests here are from the pytest-md-report repository.

Usage

Install from Pypi

You can install from Pypi

$ pip install pytest-github-report

Local

First, install dependencies:

$ pip install -r requirements.txt

And then run tests to see the markdown output (that will get piped into GitHub):

$ pytest --github-report tests/

This markdown output is provided via pytest-md-report and you can see other ways to customize it there!

GitHub Actions

To make this work in GitHub actions, it's actually very simple! You can either run the same command:

 - name: Report via Command Linerun: pytest --github-report tests

Or export via the environment (e.g., good if you don't want to change your default testing command but want it to work during GitHub actions).

 - name: Report via Environmentenv:
pytest_github_report: truerun: pytest tests

Configuration

Advanced configuration can be done via the environment since we are scoping to GitHub actions.

Enable

If you want to have the report work from the environment (ideal if you don't want to change the command to run your tests) you can do:

export pytest_github_report=true

If that value is found with any none Null value (e.g., True or yes) a report will be generated given this module is installed.

Title

To set a particular title for your report:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: "Formatting"run: pytest tests

Zeros

By default, we only show colored emojis to indicate a success or failure. To use a count (value) instead:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_zeros: truerun: pytest tests

Blanks

Or a blank value:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_blanks: truerun: pytest tests

Detail

By default, we output a simplified view, which is pytest_verbosity: 0. You actually have two options for verbosity: This first is the default (0), which shows a summary by file:

 - name: Report via Environmentenv:
pytest_verbosity: 0run: pytest --github-report tests

Notice below that although the table shows summary by file, the output section shows both failures within the file:

img/report-simple.png

The second shows per test results (adding the function name) and adds more detail to the matrix:

 - name: Report via Environmentenv:
pytest_verbosity: 2run: pytest --github-report tests

img/report-verbosity.png

In this case, the detail is on the level of the function. But either way, detail is printed below the matrix, as you can see above!

Emojis

Choose the emijos (or characters) you want for your tests! A helpful emoji guide is here.

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: ":unicorn: Report With Custom Emojis :unicorn:"pytest_passed_emoji: ":green_heart:"pytest_failed_emoji: ":heart:"pytest_xpassed_emoji: ":bangbang:"pytest_xfailed_emoji: ":bangbang:"pytest_skipped_emoji: ":shipit:"run: pytest tests

Here is an example with the custom emojis above!

img/report-custom-emojis.png

You can see the GitHub workflow for these examples.

Thanks!

The markdown functionality here is based off of thombashi/pytest-md-report which is released under an MIT license that we credit in .github/LICENSE.

About

Generate markdown report for pytest tests in GitHub actions

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, '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

Repository files navigation

Pytest GitHub Report

PyPI version

This is an example of how we can use GitHub reports with pytest to generate a nice markdown matrix of results. The tests here are from the pytest-md-report repository.

Usage

Install from Pypi

You can install from Pypi

$ pip install pytest-github-report

Local

First, install dependencies:

$ pip install -r requirements.txt

And then run tests to see the markdown output (that will get piped into GitHub):

$ pytest --github-report tests/

This markdown output is provided via pytest-md-report and you can see other ways to customize it there!

GitHub Actions

To make this work in GitHub actions, it's actually very simple! You can either run the same command:

 - name: Report via Command Linerun: pytest --github-report tests

Or export via the environment (e.g., good if you don't want to change your default testing command but want it to work during GitHub actions).

 - name: Report via Environmentenv:
pytest_github_report: truerun: pytest tests

Configuration

Advanced configuration can be done via the environment since we are scoping to GitHub actions.

Enable

If you want to have the report work from the environment (ideal if you don't want to change the command to run your tests) you can do:

export pytest_github_report=true

If that value is found with any none Null value (e.g., True or yes) a report will be generated given this module is installed.

Title

To set a particular title for your report:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: "Formatting"run: pytest tests

Zeros

By default, we only show colored emojis to indicate a success or failure. To use a count (value) instead:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_zeros: truerun: pytest tests

Blanks

Or a blank value:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_blanks: truerun: pytest tests

Detail

By default, we output a simplified view, which is pytest_verbosity: 0. You actually have two options for verbosity: This first is the default (0), which shows a summary by file:

 - name: Report via Environmentenv:
pytest_verbosity: 0run: pytest --github-report tests

Notice below that although the table shows summary by file, the output section shows both failures within the file:

img/report-simple.png

The second shows per test results (adding the function name) and adds more detail to the matrix:

 - name: Report via Environmentenv:
pytest_verbosity: 2run: pytest --github-report tests

img/report-verbosity.png

In this case, the detail is on the level of the function. But either way, detail is printed below the matrix, as you can see above!

Emojis

Choose the emijos (or characters) you want for your tests! A helpful emoji guide is here.

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: ":unicorn: Report With Custom Emojis :unicorn:"pytest_passed_emoji: ":green_heart:"pytest_failed_emoji: ":heart:"pytest_xpassed_emoji: ":bangbang:"pytest_xfailed_emoji: ":bangbang:"pytest_skipped_emoji: ":shipit:"run: pytest tests

Here is an example with the custom emojis above!

img/report-custom-emojis.png

You can see the GitHub workflow for these examples.

Thanks!

The markdown functionality here is based off of thombashi/pytest-md-report which is released under an MIT license that we credit in .github/LICENSE.

About

Generate markdown report for pytest tests in GitHub actions

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, '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

Repository files navigation

Pytest GitHub Report

PyPI version

This is an example of how we can use GitHub reports with pytest to generate a nice markdown matrix of results. The tests here are from the pytest-md-report repository.

Usage

Install from Pypi

You can install from Pypi

$ pip install pytest-github-report

Local

First, install dependencies:

$ pip install -r requirements.txt

And then run tests to see the markdown output (that will get piped into GitHub):

$ pytest --github-report tests/

This markdown output is provided via pytest-md-report and you can see other ways to customize it there!

GitHub Actions

To make this work in GitHub actions, it's actually very simple! You can either run the same command:

 - name: Report via Command Linerun: pytest --github-report tests

Or export via the environment (e.g., good if you don't want to change your default testing command but want it to work during GitHub actions).

 - name: Report via Environmentenv:
pytest_github_report: truerun: pytest tests

Configuration

Advanced configuration can be done via the environment since we are scoping to GitHub actions.

Enable

If you want to have the report work from the environment (ideal if you don't want to change the command to run your tests) you can do:

export pytest_github_report=true

If that value is found with any none Null value (e.g., True or yes) a report will be generated given this module is installed.

Title

To set a particular title for your report:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: "Formatting"run: pytest tests

Zeros

By default, we only show colored emojis to indicate a success or failure. To use a count (value) instead:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_zeros: truerun: pytest tests

Blanks

Or a blank value:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_blanks: truerun: pytest tests

Detail

By default, we output a simplified view, which is pytest_verbosity: 0. You actually have two options for verbosity: This first is the default (0), which shows a summary by file:

 - name: Report via Environmentenv:
pytest_verbosity: 0run: pytest --github-report tests

Notice below that although the table shows summary by file, the output section shows both failures within the file:

img/report-simple.png

The second shows per test results (adding the function name) and adds more detail to the matrix:

 - name: Report via Environmentenv:
pytest_verbosity: 2run: pytest --github-report tests

img/report-verbosity.png

In this case, the detail is on the level of the function. But either way, detail is printed below the matrix, as you can see above!

Emojis

Choose the emijos (or characters) you want for your tests! A helpful emoji guide is here.

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: ":unicorn: Report With Custom Emojis :unicorn:"pytest_passed_emoji: ":green_heart:"pytest_failed_emoji: ":heart:"pytest_xpassed_emoji: ":bangbang:"pytest_xfailed_emoji: ":bangbang:"pytest_skipped_emoji: ":shipit:"run: pytest tests

Here is an example with the custom emojis above!

img/report-custom-emojis.png

You can see the GitHub workflow for these examples.

Thanks!

The markdown functionality here is based off of thombashi/pytest-md-report which is released under an MIT license that we credit in .github/LICENSE.

About

Generate markdown report for pytest tests in GitHub actions

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, '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

Repository files navigation

Pytest GitHub Report

PyPI version

This is an example of how we can use GitHub reports with pytest to generate a nice markdown matrix of results. The tests here are from the pytest-md-report repository.

Usage

Install from Pypi

You can install from Pypi

$ pip install pytest-github-report

Local

First, install dependencies:

$ pip install -r requirements.txt

And then run tests to see the markdown output (that will get piped into GitHub):

$ pytest --github-report tests/

This markdown output is provided via pytest-md-report and you can see other ways to customize it there!

GitHub Actions

To make this work in GitHub actions, it's actually very simple! You can either run the same command:

 - name: Report via Command Linerun: pytest --github-report tests

Or export via the environment (e.g., good if you don't want to change your default testing command but want it to work during GitHub actions).

 - name: Report via Environmentenv:
pytest_github_report: truerun: pytest tests

Configuration

Advanced configuration can be done via the environment since we are scoping to GitHub actions.

Enable

If you want to have the report work from the environment (ideal if you don't want to change the command to run your tests) you can do:

export pytest_github_report=true

If that value is found with any none Null value (e.g., True or yes) a report will be generated given this module is installed.

Title

To set a particular title for your report:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: "Formatting"run: pytest tests

Zeros

By default, we only show colored emojis to indicate a success or failure. To use a count (value) instead:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_zeros: truerun: pytest tests

Blanks

Or a blank value:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_blanks: truerun: pytest tests

Detail

By default, we output a simplified view, which is pytest_verbosity: 0. You actually have two options for verbosity: This first is the default (0), which shows a summary by file:

 - name: Report via Environmentenv:
pytest_verbosity: 0run: pytest --github-report tests

Notice below that although the table shows summary by file, the output section shows both failures within the file:

img/report-simple.png

The second shows per test results (adding the function name) and adds more detail to the matrix:

 - name: Report via Environmentenv:
pytest_verbosity: 2run: pytest --github-report tests

img/report-verbosity.png

In this case, the detail is on the level of the function. But either way, detail is printed below the matrix, as you can see above!

Emojis

Choose the emijos (or characters) you want for your tests! A helpful emoji guide is here.

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: ":unicorn: Report With Custom Emojis :unicorn:"pytest_passed_emoji: ":green_heart:"pytest_failed_emoji: ":heart:"pytest_xpassed_emoji: ":bangbang:"pytest_xfailed_emoji: ":bangbang:"pytest_skipped_emoji: ":shipit:"run: pytest tests

Here is an example with the custom emojis above!

img/report-custom-emojis.png

You can see the GitHub workflow for these examples.

Thanks!

The markdown functionality here is based off of thombashi/pytest-md-report which is released under an MIT license that we credit in .github/LICENSE.

About

Generate markdown report for pytest tests in GitHub actions

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, '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

Repository files navigation

Pytest GitHub Report

PyPI version

This is an example of how we can use GitHub reports with pytest to generate a nice markdown matrix of results. The tests here are from the pytest-md-report repository.

Usage

Install from Pypi

You can install from Pypi

$ pip install pytest-github-report

Local

First, install dependencies:

$ pip install -r requirements.txt

And then run tests to see the markdown output (that will get piped into GitHub):

$ pytest --github-report tests/

This markdown output is provided via pytest-md-report and you can see other ways to customize it there!

GitHub Actions

To make this work in GitHub actions, it's actually very simple! You can either run the same command:

 - name: Report via Command Linerun: pytest --github-report tests

Or export via the environment (e.g., good if you don't want to change your default testing command but want it to work during GitHub actions).

 - name: Report via Environmentenv:
pytest_github_report: truerun: pytest tests

Configuration

Advanced configuration can be done via the environment since we are scoping to GitHub actions.

Enable

If you want to have the report work from the environment (ideal if you don't want to change the command to run your tests) you can do:

export pytest_github_report=true

If that value is found with any none Null value (e.g., True or yes) a report will be generated given this module is installed.

Title

To set a particular title for your report:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: "Formatting"run: pytest tests

Zeros

By default, we only show colored emojis to indicate a success or failure. To use a count (value) instead:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_zeros: truerun: pytest tests

Blanks

Or a blank value:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_blanks: truerun: pytest tests

Detail

By default, we output a simplified view, which is pytest_verbosity: 0. You actually have two options for verbosity: This first is the default (0), which shows a summary by file:

 - name: Report via Environmentenv:
pytest_verbosity: 0run: pytest --github-report tests

Notice below that although the table shows summary by file, the output section shows both failures within the file:

img/report-simple.png

The second shows per test results (adding the function name) and adds more detail to the matrix:

 - name: Report via Environmentenv:
pytest_verbosity: 2run: pytest --github-report tests

img/report-verbosity.png

In this case, the detail is on the level of the function. But either way, detail is printed below the matrix, as you can see above!

Emojis

Choose the emijos (or characters) you want for your tests! A helpful emoji guide is here.

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: ":unicorn: Report With Custom Emojis :unicorn:"pytest_passed_emoji: ":green_heart:"pytest_failed_emoji: ":heart:"pytest_xpassed_emoji: ":bangbang:"pytest_xfailed_emoji: ":bangbang:"pytest_skipped_emoji: ":shipit:"run: pytest tests

Here is an example with the custom emojis above!

img/report-custom-emojis.png

You can see the GitHub workflow for these examples.

Thanks!

The markdown functionality here is based off of thombashi/pytest-md-report which is released under an MIT license that we credit in .github/LICENSE.

About

Generate markdown report for pytest tests in GitHub actions

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, '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

Repository files navigation

Pytest GitHub Report

PyPI version

This is an example of how we can use GitHub reports with pytest to generate a nice markdown matrix of results. The tests here are from the pytest-md-report repository.

Usage

Install from Pypi

You can install from Pypi

$ pip install pytest-github-report

Local

First, install dependencies:

$ pip install -r requirements.txt

And then run tests to see the markdown output (that will get piped into GitHub):

$ pytest --github-report tests/

This markdown output is provided via pytest-md-report and you can see other ways to customize it there!

GitHub Actions

To make this work in GitHub actions, it's actually very simple! You can either run the same command:

 - name: Report via Command Linerun: pytest --github-report tests

Or export via the environment (e.g., good if you don't want to change your default testing command but want it to work during GitHub actions).

 - name: Report via Environmentenv:
pytest_github_report: truerun: pytest tests

Configuration

Advanced configuration can be done via the environment since we are scoping to GitHub actions.

Enable

If you want to have the report work from the environment (ideal if you don't want to change the command to run your tests) you can do:

export pytest_github_report=true

If that value is found with any none Null value (e.g., True or yes) a report will be generated given this module is installed.

Title

To set a particular title for your report:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: "Formatting"run: pytest tests

Zeros

By default, we only show colored emojis to indicate a success or failure. To use a count (value) instead:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_zeros: truerun: pytest tests

Blanks

Or a blank value:

 - name: Report via Environmentenv:
pytest_github_report: truepytest_use_blanks: truerun: pytest tests

Detail

By default, we output a simplified view, which is pytest_verbosity: 0. You actually have two options for verbosity: This first is the default (0), which shows a summary by file:

 - name: Report via Environmentenv:
pytest_verbosity: 0run: pytest --github-report tests

Notice below that although the table shows summary by file, the output section shows both failures within the file:

img/report-simple.png

The second shows per test results (adding the function name) and adds more detail to the matrix:

 - name: Report via Environmentenv:
pytest_verbosity: 2run: pytest --github-report tests

img/report-verbosity.png

In this case, the detail is on the level of the function. But either way, detail is printed below the matrix, as you can see above!

Emojis

Choose the emijos (or characters) you want for your tests! A helpful emoji guide is here.

 - name: Report via Environmentenv:
pytest_github_report: truepytest_report_title: ":unicorn: Report With Custom Emojis :unicorn:"pytest_passed_emoji: ":green_heart:"pytest_failed_emoji: ":heart:"pytest_xpassed_emoji: ":bangbang:"pytest_xfailed_emoji: ":bangbang:"pytest_skipped_emoji: ":shipit:"run: pytest tests

Here is an example with the custom emojis above!

img/report-custom-emojis.png

You can see the GitHub workflow for these examples.

Thanks!

The markdown functionality here is based off of thombashi/pytest-md-report which is released under an MIT license that we credit in .github/LICENSE.

About

Generate markdown report for pytest tests in GitHub actions

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages