From 5f42423b31dc2fba66311227ed9afe7f26f3eaa4 Mon Sep 17 00:00:00 2001 From: mw-hrastega <48831250+mw-hrastega@users.noreply.github.com> Date: Wed, 27 May 2026 15:42:10 -0400 Subject: [PATCH 01/11] Revise README for GitHub job summary updates Updated README to reflect changes in GitHub job summary display for test results and code coverage metrics. --- README.md | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 72bf7e1..3eaf937 100644 --- a/README.md +++ b/README.md @@ -116,33 +116,34 @@ The **Run MATLAB Tests** action accepts optional inputs. For example, you can ad | Input | Description | | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `source-folder` |

(Optional) Location of the folder containing source code, specified as a path relative to the project root folder. The specified folder and its subfolders are added to the top of the MATLAB search path. If you specify `source-folder` and then generate a coverage report, the action uses only the source code in the specified folder and its subfolders to generate the report. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `source-folder: source`
**Example:** `source-folder: source/folderA; source/folderB`

| -| `select-by-folder` |

(Optional) Location of the folder used to select test suite elements, specified as a path relative to the project root folder. To create a test suite, the action uses only the tests in the specified folder and its subfolders. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `select-by-folder: test`
**Example:** `select-by-folder: test/folderA; test/folderB`

| -| `select-by-tag` |

(Optional) Test tag used to select test suite elements. To create a test suite, the action uses only the test elements with the specified tag.

**Example:** `select-by-tag: Unit`

| -| `strict` |

(Optional) Option to apply strict checks when running tests, specified as `false` or `true`. By default, the value is `false`. If you specify a value of `true`, the action generates a qualification failure whenever a test issues a warning.

**Example:** `strict: true`

| -| `use-parallel` |

(Optional) Option to run tests in parallel, specified as `false` or `true`. By default, the value is `false` and tests run in serial. If the test runner configuration is suited for parallelization, you can specify a value of `true` to run tests in parallel. This input requires a Parallel Computing Toolbox license.

**Example:** `use-parallel: true`

| -| `output-detail` |

(Optional) Amount of event detail displayed for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action displays failing and logged events at the `detailed` level and test run progress at the `concise` level.

**Example:** `output-detail: verbose`

| -| `logging-level` |

(Optional) Maximum verbosity level for logged diagnostics included for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action includes diagnostics logged at the `terse` level.

**Example:** `logging-level: detailed`

| -| `test-results-html` |

(Optional) Location to write the test results in HTML format, specified as a folder path relative to the project root folder.

**Example:** `test-results-html: test-results`

| -| `test-results-pdf` |

(Optional) Location to write the test results in PDF format, specified as a file path relative to the project root folder. On macOS platforms, this input is supported in MATLAB R2020b and later.

**Example:** `test-results-pdf: test-results/results.pdf`

| -| `test-results-junit` |

(Optional) Location to write the test results in JUnit-style XML format, specified as a file path relative to the project root folder.

**Example:** `test-results-junit: test-results/results.xml`

| -| `test-results-simulink-test` |

(Optional) Location to export Simulink Test Manager results in MLDATX format, specified as a file path relative to the project root folder. This input requires a Simulink Test license and is supported in MATLAB R2019a and later.

**Example:** `test-results-simulink-test: test-results/results.mldatx`

| -| `code-coverage-html` |

(Optional) Location to write the code coverage results in HTML format, specified as a folder path relative to the project root folder. The results include statement and function coverage metrics.

**Example:** `code-coverage-html: code-coverage`

| -| `code-coverage-cobertura` |

(Optional) Location to write the code coverage results in Cobertura XML format, specified as a file path relative to the project root folder.

**Example:** `code-coverage-cobertura: code-coverage/coverage.xml`

| +| `source-folder` |

(Optional) Location of the folder containing source code, specified as a path relative to the project root folder. The specified folder and its subfolders are added to the top of the MATLAB search path. If you specify `source-folder` and then generate a coverage report, the action uses only the source code in the specified folder and its subfolders to generate the report. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `source-folder: source`
**Example:** `source-folder: source/folderA; source/folderB`

| +| `select-by-folder` |

(Optional) Location of the folder used to select test suite elements, specified as a path relative to the project root folder. To create a test suite, the action uses only the tests in the specified folder and its subfolders. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `select-by-folder: test`
**Example:** `select-by-folder: test/folderA; test/folderB`

| +| `select-by-tag` |

(Optional) Test tag used to select test suite elements. To create a test suite, the action uses only the test elements with the specified tag.

**Example:** `select-by-tag: Unit`

| +| `strict` |

(Optional) Option to apply strict checks when running tests, specified as `false` or `true`. By default, the value is `false`. If you specify a value of `true`, the action generates a qualification failure whenever a test issues a warning.

**Example:** `strict: true`

| +| `use-parallel` |

(Optional) Option to run tests in parallel, specified as `false` or `true`. By default, the value is `false` and tests run in serial. If the test runner configuration is suited for parallelization, you can specify a value of `true` to run tests in parallel. This input requires a Parallel Computing Toolbox license.

**Example:** `use-parallel: true`

| +| `output-detail` |

(Optional) Amount of event detail displayed for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action displays failing and logged events at the `detailed` level and test run progress at the `concise` level.

**Example:** `output-detail: verbose`

| +| `logging-level` |

(Optional) Maximum verbosity level for logged diagnostics included for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action includes diagnostics logged at the `terse` level.

**Example:** `logging-level: detailed`

| +| `test-results-html` |

(Optional) Location to write the test results in HTML format, specified as a folder path relative to the project root folder.

**Example:** `test-results-html: test-results`

| +| `test-results-pdf` |

(Optional) Location to write the test results in PDF format, specified as a file path relative to the project root folder. On macOS platforms, this input is supported in MATLAB R2020b and later.

**Example:** `test-results-pdf: test-results/results.pdf`

| +| `test-results-junit` |

(Optional) Location to write the test results in JUnit-style XML format, specified as a file path relative to the project root folder.

**Example:** `test-results-junit: test-results/results.xml`

| +| `test-results-simulink-test` |

(Optional) Location to export Simulink Test Manager results in MLDATX format, specified as a file path relative to the project root folder. This input requires a Simulink Test license and is supported in MATLAB R2019a and later.

**Example:** `test-results-simulink-test: test-results/results.mldatx`

| +| `code-coverage-html` |

(Optional) Location to write the code coverage results in HTML format, specified as a folder path relative to the project root folder. The results include statement and function coverage metrics.

**Example:** `code-coverage-html: code-coverage`

| +| `code-coverage-cobertura` |

(Optional) Location to write the code coverage results in Cobertura XML format, specified as a file path relative to the project root folder.

**Example:** `code-coverage-cobertura: code-coverage/coverage.xml`

| | `code-coverage-metric-level` |

(Optional) Level of code coverage metrics to include in the GitHub job summary, specified as `statement`, `decision`, `condition`, or `mcdc`. By default, the action uses the highest level (`mcdc`) when generating the coverage summary, which results in a table that includes the function, statement, decision, condition, and modified condition/decision coverage (MC/DC) metrics. Use this input to include metrics up to and including a specific level, instead of the highest possible level. For example, to include only function and statement coverage metrics, specify `code-coverage-metric-level` as `statement`. For more information about coverage metric levels, see [Types of Code Coverage for MATLAB Source Code](https://www.mathworks.com/help/matlab-test/ug/types-of-code-coverage-for-matlab-source-code.html).

For the action to include coverage metrics in the GitHub job summary, the following requirements must be met:

**Example:** `code-coverage-metric-level: statement`

| -| `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| -| `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| -| `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| +| `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| +| `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| +| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `false` or `true`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. This input is useful for controlling the information displayed in the GitHub job summary.

**Example:** `generate-summary: false`

| +| `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| ## View Test and Coverage Results -With a MATLAB Test license, you can view test results and code coverage metrics for your source code on the workflow run summary page. +With a MATLAB Test license, you can view test results and code coverage metrics for your source code in the GitHub job summary. Workflow run summary page showing four passed tests from a single test file. The MATLAB Code Coverage table displays the collected code coverage metrics for the source code. In the All tests table, the expanded row displays a table of test results for the test file. ### Test Results Summary -If you have a MATLAB Test license, after your workflow runs, the workflow run summary page displays the number of tests in the test suite, as well as the number of tests that passed, failed, were incomplete (due to assumption failure), and did not run (due to fatal assertion failure). Additionally, the **All tests** table on the page includes a row for each executed test file. Each table row displays the status of a test file, its name, and the time it took to run. You can hover over a filename in the table to see the file path within your project. +If you have a MATLAB Test license, after your workflow runs, the GitHub job summary displays the number of tests in the test suite, as well as the number of tests that passed, failed, were incomplete (due to assumption failure), and did not run (due to fatal assertion failure). Additionally, the **All tests** table in the summary includes a row for each executed test file. Each table row displays the status of a test file, its name, and the time it took to run. You can hover over a filename in the table to see the file path within your project. You can interact with the **All tests** table using the expanders to the left of test filenames and diagnostics. In an expanded table row, individual test results from the corresponding test file appear in a table under the test filename. Each row of the inner table shows the status, procedure name, diagnostics, and duration of a test in the file. @@ -154,7 +155,7 @@ You can interact with the **All tests** table using the expanders to the left of ### Code Coverage Summary -The **MATLAB Code Coverage** table on the workflow run summary page displays the collected code coverage metrics for the MATLAB source code specified by the `source-folder` input of the **Run MATLAB Tests** action. For the action to generate this table, the following requirements must be met: +The **MATLAB Code Coverage** table in the GitHub job summary displays the collected code coverage metrics for the MATLAB source code specified by the `source-folder` input of the **Run MATLAB Tests** action. For the action to generate this table, the following requirements must be met: - MATLAB Test must be installed and licensed on the runner. - You must not specify the `code-coverage-html` or `code-coverage-cobertura` action inputs. From c4ff816d4b34aa6f2bf0a0963918c0865f9225de Mon Sep 17 00:00:00 2001 From: mw-hrastega <48831250+mw-hrastega@users.noreply.github.com> Date: Wed, 27 May 2026 15:43:51 -0400 Subject: [PATCH 02/11] Revise MATLAB Test license results description Updated the wording for MATLAB Test license results visibility in GitHub job summary. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3eaf937..55ffcb7 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,7 @@ If you have a MATLAB Test license, after your workflow runs, the GitHub job summ You can interact with the **All tests** table using the expanders to the left of test filenames and diagnostics. In an expanded table row, individual test results from the corresponding test file appear in a table under the test filename. Each row of the inner table shows the status, procedure name, diagnostics, and duration of a test in the file. > [!TIP] -> With a MATLAB Test license, you also see your MATLAB and Simulink test results on the workflow run summary page when you take any of these actions: +> With a MATLAB Test license, you also see your MATLAB and Simulink test results in the GitHub job summary when you take any of these actions: > > - Run tests with a [`matlab.buildtool.tasks.TestTask`](https://www.mathworks.com/help/matlab/ref/matlab.buildtool.tasks.testtask-class.html) instance using the [Run MATLAB Build](https://github.com/matlab-actions/run-build/) action. > - Run tests with a default test runner using the [Run MATLAB Command](https://github.com/matlab-actions/run-command/) action. You can create a default test runner using the [`matlab.unittest.TestRunner.withDefaultPlugins`](https://www.mathworks.com/help/matlab/ref/matlab.unittest.testrunner.withdefaultplugins.html) method. From 78e350ab1c80765cd7a78fb8e0c588c7f97c7eec Mon Sep 17 00:00:00 2001 From: mw-hrastega <48831250+mw-hrastega@users.noreply.github.com> Date: Wed, 27 May 2026 15:53:47 -0400 Subject: [PATCH 03/11] Enhance generate-summary option documentation Updated the generate-summary option description to include a reference to viewing test and coverage results. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55ffcb7..01ee888 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ The **Run MATLAB Tests** action accepts optional inputs. For example, you can ad | `code-coverage-metric-level` |

(Optional) Level of code coverage metrics to include in the GitHub job summary, specified as `statement`, `decision`, `condition`, or `mcdc`. By default, the action uses the highest level (`mcdc`) when generating the coverage summary, which results in a table that includes the function, statement, decision, condition, and modified condition/decision coverage (MC/DC) metrics. Use this input to include metrics up to and including a specific level, instead of the highest possible level. For example, to include only function and statement coverage metrics, specify `code-coverage-metric-level` as `statement`. For more information about coverage metric levels, see [Types of Code Coverage for MATLAB Source Code](https://www.mathworks.com/help/matlab-test/ug/types-of-code-coverage-for-matlab-source-code.html).

For the action to include coverage metrics in the GitHub job summary, the following requirements must be met:

**Example:** `code-coverage-metric-level: statement`

| | `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| | `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| -| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `false` or `true`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. This input is useful for controlling the information displayed in the GitHub job summary.

**Example:** `generate-summary: false`

| +| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `false` or `true`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. This input is useful for controlling the information displayed in the GitHub job summary.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| | `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| ## View Test and Coverage Results From afc4fc887d0bbb207c17113653850283834ad203 Mon Sep 17 00:00:00 2001 From: mw-hrastega <48831250+mw-hrastega@users.noreply.github.com> Date: Wed, 27 May 2026 15:57:54 -0400 Subject: [PATCH 04/11] Update README to specify generate-summary input Clarify that test results are viewable when 'generate-summary' is true. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 01ee888..70307e1 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,7 @@ The **Run MATLAB Tests** action accepts optional inputs. For example, you can ad ## View Test and Coverage Results -With a MATLAB Test license, you can view test results and code coverage metrics for your source code in the GitHub job summary. +With a MATLAB Test license, you can view test results and code coverage metrics for your source code in the GitHub job summary when the `generate-summary` input is `true`. Workflow run summary page showing four passed tests from a single test file. The MATLAB Code Coverage table displays the collected code coverage metrics for the source code. In the All tests table, the expanded row displays a table of test results for the test file. From 14a7afca9475fe132e23ef1ee610953eaf331b42 Mon Sep 17 00:00:00 2001 From: mw-hrastega <48831250+mw-hrastega@users.noreply.github.com> Date: Wed, 27 May 2026 16:25:39 -0400 Subject: [PATCH 05/11] Fix generate-summary option description formatting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 70307e1..53f1c3a 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ The **Run MATLAB Tests** action accepts optional inputs. For example, you can ad | `code-coverage-metric-level` |

(Optional) Level of code coverage metrics to include in the GitHub job summary, specified as `statement`, `decision`, `condition`, or `mcdc`. By default, the action uses the highest level (`mcdc`) when generating the coverage summary, which results in a table that includes the function, statement, decision, condition, and modified condition/decision coverage (MC/DC) metrics. Use this input to include metrics up to and including a specific level, instead of the highest possible level. For example, to include only function and statement coverage metrics, specify `code-coverage-metric-level` as `statement`. For more information about coverage metric levels, see [Types of Code Coverage for MATLAB Source Code](https://www.mathworks.com/help/matlab-test/ug/types-of-code-coverage-for-matlab-source-code.html).

For the action to include coverage metrics in the GitHub job summary, the following requirements must be met:

**Example:** `code-coverage-metric-level: statement`

| | `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| | `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| -| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `false` or `true`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. This input is useful for controlling the information displayed in the GitHub job summary.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| +| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. This input is useful for controlling the information displayed in the GitHub job summary.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| | `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| ## View Test and Coverage Results From 4ecdebc7e9f5e229eb2410bbc43d0b869a4a7be1 Mon Sep 17 00:00:00 2001 From: mw-hrastega <48831250+mw-hrastega@users.noreply.github.com> Date: Wed, 27 May 2026 16:59:16 -0400 Subject: [PATCH 06/11] Update README with additional test action option --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 53f1c3a..1c95e82 100644 --- a/README.md +++ b/README.md @@ -150,7 +150,7 @@ You can interact with the **All tests** table using the expanders to the left of > [!TIP] > With a MATLAB Test license, you also see your MATLAB and Simulink test results in the GitHub job summary when you take any of these actions: > -> - Run tests with a [`matlab.buildtool.tasks.TestTask`](https://www.mathworks.com/help/matlab/ref/matlab.buildtool.tasks.testtask-class.html) instance using the [Run MATLAB Build](https://github.com/matlab-actions/run-build/) action. +> - Run tests with a [`matlab.buildtool.tasks.TestTask`](https://www.mathworks.com/help/matlab/ref/matlab.buildtool.tasks.testtask-class.html) instance using the [Run MATLAB Build](https://github.com/matlab-actions/run-build/) or [Run MATLAB Command](https://github.com/matlab-actions/run-command/) action. > - Run tests with a default test runner using the [Run MATLAB Command](https://github.com/matlab-actions/run-command/) action. You can create a default test runner using the [`matlab.unittest.TestRunner.withDefaultPlugins`](https://www.mathworks.com/help/matlab/ref/matlab.unittest.testrunner.withdefaultplugins.html) method. ### Code Coverage Summary From 8d010f08ac30d9f8336260e5a94e0db5e9ee5d2f Mon Sep 17 00:00:00 2001 From: mw-hrastega <48831250+mw-hrastega@users.noreply.github.com> Date: Thu, 28 May 2026 10:51:53 -0400 Subject: [PATCH 07/11] Fix formatting of generate-summary option in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1c95e82..233b8b8 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ The **Run MATLAB Tests** action accepts optional inputs. For example, you can ad | `code-coverage-metric-level` |

(Optional) Level of code coverage metrics to include in the GitHub job summary, specified as `statement`, `decision`, `condition`, or `mcdc`. By default, the action uses the highest level (`mcdc`) when generating the coverage summary, which results in a table that includes the function, statement, decision, condition, and modified condition/decision coverage (MC/DC) metrics. Use this input to include metrics up to and including a specific level, instead of the highest possible level. For example, to include only function and statement coverage metrics, specify `code-coverage-metric-level` as `statement`. For more information about coverage metric levels, see [Types of Code Coverage for MATLAB Source Code](https://www.mathworks.com/help/matlab-test/ug/types-of-code-coverage-for-matlab-source-code.html).

For the action to include coverage metrics in the GitHub job summary, the following requirements must be met:

**Example:** `code-coverage-metric-level: statement`

| | `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| | `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| -| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. This input is useful for controlling the information displayed in the GitHub job summary.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| +| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| | `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| ## View Test and Coverage Results From c202750b56516996e88adc21aeade4c7742441ac Mon Sep 17 00:00:00 2001 From: Houman Rastegarfar Date: Fri, 29 May 2026 10:55:36 -0400 Subject: [PATCH 08/11] Fix Prettier formatting in README table Pad all table rows to uniform column width to satisfy prettier --check. Co-Authored-By: Claude Opus 4.6 --- README.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 233b8b8..a898d0a 100644 --- a/README.md +++ b/README.md @@ -116,24 +116,24 @@ The **Run MATLAB Tests** action accepts optional inputs. For example, you can ad | Input | Description | | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `source-folder` |

(Optional) Location of the folder containing source code, specified as a path relative to the project root folder. The specified folder and its subfolders are added to the top of the MATLAB search path. If you specify `source-folder` and then generate a coverage report, the action uses only the source code in the specified folder and its subfolders to generate the report. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `source-folder: source`
**Example:** `source-folder: source/folderA; source/folderB`

| -| `select-by-folder` |

(Optional) Location of the folder used to select test suite elements, specified as a path relative to the project root folder. To create a test suite, the action uses only the tests in the specified folder and its subfolders. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `select-by-folder: test`
**Example:** `select-by-folder: test/folderA; test/folderB`

| -| `select-by-tag` |

(Optional) Test tag used to select test suite elements. To create a test suite, the action uses only the test elements with the specified tag.

**Example:** `select-by-tag: Unit`

| -| `strict` |

(Optional) Option to apply strict checks when running tests, specified as `false` or `true`. By default, the value is `false`. If you specify a value of `true`, the action generates a qualification failure whenever a test issues a warning.

**Example:** `strict: true`

| -| `use-parallel` |

(Optional) Option to run tests in parallel, specified as `false` or `true`. By default, the value is `false` and tests run in serial. If the test runner configuration is suited for parallelization, you can specify a value of `true` to run tests in parallel. This input requires a Parallel Computing Toolbox license.

**Example:** `use-parallel: true`

| -| `output-detail` |

(Optional) Amount of event detail displayed for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action displays failing and logged events at the `detailed` level and test run progress at the `concise` level.

**Example:** `output-detail: verbose`

| -| `logging-level` |

(Optional) Maximum verbosity level for logged diagnostics included for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action includes diagnostics logged at the `terse` level.

**Example:** `logging-level: detailed`

| -| `test-results-html` |

(Optional) Location to write the test results in HTML format, specified as a folder path relative to the project root folder.

**Example:** `test-results-html: test-results`

| -| `test-results-pdf` |

(Optional) Location to write the test results in PDF format, specified as a file path relative to the project root folder. On macOS platforms, this input is supported in MATLAB R2020b and later.

**Example:** `test-results-pdf: test-results/results.pdf`

| -| `test-results-junit` |

(Optional) Location to write the test results in JUnit-style XML format, specified as a file path relative to the project root folder.

**Example:** `test-results-junit: test-results/results.xml`

| -| `test-results-simulink-test` |

(Optional) Location to export Simulink Test Manager results in MLDATX format, specified as a file path relative to the project root folder. This input requires a Simulink Test license and is supported in MATLAB R2019a and later.

**Example:** `test-results-simulink-test: test-results/results.mldatx`

| -| `code-coverage-html` |

(Optional) Location to write the code coverage results in HTML format, specified as a folder path relative to the project root folder. The results include statement and function coverage metrics.

**Example:** `code-coverage-html: code-coverage`

| -| `code-coverage-cobertura` |

(Optional) Location to write the code coverage results in Cobertura XML format, specified as a file path relative to the project root folder.

**Example:** `code-coverage-cobertura: code-coverage/coverage.xml`

| +| `source-folder` |

(Optional) Location of the folder containing source code, specified as a path relative to the project root folder. The specified folder and its subfolders are added to the top of the MATLAB search path. If you specify `source-folder` and then generate a coverage report, the action uses only the source code in the specified folder and its subfolders to generate the report. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `source-folder: source`
**Example:** `source-folder: source/folderA; source/folderB`

| +| `select-by-folder` |

(Optional) Location of the folder used to select test suite elements, specified as a path relative to the project root folder. To create a test suite, the action uses only the tests in the specified folder and its subfolders. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `select-by-folder: test`
**Example:** `select-by-folder: test/folderA; test/folderB`

| +| `select-by-tag` |

(Optional) Test tag used to select test suite elements. To create a test suite, the action uses only the test elements with the specified tag.

**Example:** `select-by-tag: Unit`

| +| `strict` |

(Optional) Option to apply strict checks when running tests, specified as `false` or `true`. By default, the value is `false`. If you specify a value of `true`, the action generates a qualification failure whenever a test issues a warning.

**Example:** `strict: true`

| +| `use-parallel` |

(Optional) Option to run tests in parallel, specified as `false` or `true`. By default, the value is `false` and tests run in serial. If the test runner configuration is suited for parallelization, you can specify a value of `true` to run tests in parallel. This input requires a Parallel Computing Toolbox license.

**Example:** `use-parallel: true`

| +| `output-detail` |

(Optional) Amount of event detail displayed for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action displays failing and logged events at the `detailed` level and test run progress at the `concise` level.

**Example:** `output-detail: verbose`

| +| `logging-level` |

(Optional) Maximum verbosity level for logged diagnostics included for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action includes diagnostics logged at the `terse` level.

**Example:** `logging-level: detailed`

| +| `test-results-html` |

(Optional) Location to write the test results in HTML format, specified as a folder path relative to the project root folder.

**Example:** `test-results-html: test-results`

| +| `test-results-pdf` |

(Optional) Location to write the test results in PDF format, specified as a file path relative to the project root folder. On macOS platforms, this input is supported in MATLAB R2020b and later.

**Example:** `test-results-pdf: test-results/results.pdf`

| +| `test-results-junit` |

(Optional) Location to write the test results in JUnit-style XML format, specified as a file path relative to the project root folder.

**Example:** `test-results-junit: test-results/results.xml`

| +| `test-results-simulink-test` |

(Optional) Location to export Simulink Test Manager results in MLDATX format, specified as a file path relative to the project root folder. This input requires a Simulink Test license and is supported in MATLAB R2019a and later.

**Example:** `test-results-simulink-test: test-results/results.mldatx`

| +| `code-coverage-html` |

(Optional) Location to write the code coverage results in HTML format, specified as a folder path relative to the project root folder. The results include statement and function coverage metrics.

**Example:** `code-coverage-html: code-coverage`

| +| `code-coverage-cobertura` |

(Optional) Location to write the code coverage results in Cobertura XML format, specified as a file path relative to the project root folder.

**Example:** `code-coverage-cobertura: code-coverage/coverage.xml`

| | `code-coverage-metric-level` |

(Optional) Level of code coverage metrics to include in the GitHub job summary, specified as `statement`, `decision`, `condition`, or `mcdc`. By default, the action uses the highest level (`mcdc`) when generating the coverage summary, which results in a table that includes the function, statement, decision, condition, and modified condition/decision coverage (MC/DC) metrics. Use this input to include metrics up to and including a specific level, instead of the highest possible level. For example, to include only function and statement coverage metrics, specify `code-coverage-metric-level` as `statement`. For more information about coverage metric levels, see [Types of Code Coverage for MATLAB Source Code](https://www.mathworks.com/help/matlab-test/ug/types-of-code-coverage-for-matlab-source-code.html).

For the action to include coverage metrics in the GitHub job summary, the following requirements must be met:

**Example:** `code-coverage-metric-level: statement`

| -| `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| -| `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| -| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| -| `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| +| `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| +| `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| +| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| +| `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| ## View Test and Coverage Results From 112adced1ed36ebf40a335c0e31a21e72812eaef Mon Sep 17 00:00:00 2001 From: mw-hrastega <48831250+mw-hrastega@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:46:50 -0400 Subject: [PATCH 09/11] Update README for code coverage and summary options --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a898d0a..387da3a 100644 --- a/README.md +++ b/README.md @@ -129,17 +129,17 @@ The **Run MATLAB Tests** action accepts optional inputs. For example, you can ad | `test-results-simulink-test` |

(Optional) Location to export Simulink Test Manager results in MLDATX format, specified as a file path relative to the project root folder. This input requires a Simulink Test license and is supported in MATLAB R2019a and later.

**Example:** `test-results-simulink-test: test-results/results.mldatx`

| | `code-coverage-html` |

(Optional) Location to write the code coverage results in HTML format, specified as a folder path relative to the project root folder. The results include statement and function coverage metrics.

**Example:** `code-coverage-html: code-coverage`

| | `code-coverage-cobertura` |

(Optional) Location to write the code coverage results in Cobertura XML format, specified as a file path relative to the project root folder.

**Example:** `code-coverage-cobertura: code-coverage/coverage.xml`

| -| `code-coverage-metric-level` |

(Optional) Level of code coverage metrics to include in the GitHub job summary, specified as `statement`, `decision`, `condition`, or `mcdc`. By default, the action uses the highest level (`mcdc`) when generating the coverage summary, which results in a table that includes the function, statement, decision, condition, and modified condition/decision coverage (MC/DC) metrics. Use this input to include metrics up to and including a specific level, instead of the highest possible level. For example, to include only function and statement coverage metrics, specify `code-coverage-metric-level` as `statement`. For more information about coverage metric levels, see [Types of Code Coverage for MATLAB Source Code](https://www.mathworks.com/help/matlab-test/ug/types-of-code-coverage-for-matlab-source-code.html).

For the action to include coverage metrics in the GitHub job summary, the following requirements must be met:

**Example:** `code-coverage-metric-level: statement`

| +| `code-coverage-metric-level` |

(Optional) Level of code coverage metrics to include in the GitHub job summary, specified as `statement`, `decision`, `condition`, or `mcdc`. By default, the action uses the highest level (`mcdc`) when generating the coverage summary, which results in a table that includes the function, statement, decision, condition, and modified condition/decision coverage (MC/DC) metrics. Use this input to include metrics up to and including a specific level, instead of the highest possible level. For example, to include only function and statement coverage metrics, specify `code-coverage-metric-level` as `statement`. For more information about coverage metric levels, see [Types of Code Coverage for MATLAB Source Code](https://www.mathworks.com/help/matlab-test/ug/types-of-code-coverage-for-matlab-source-code.html).

For the action to include coverage metrics in the GitHub job summary, the following requirements must be met:

**Example:** `code-coverage-metric-level: statement`

| | `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| | `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| -| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| +| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. Generating test and coverage summaries requires a MATLAB Test licesne.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| | `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| ## View Test and Coverage Results -With a MATLAB Test license, you can view test results and code coverage metrics for your source code in the GitHub job summary when the `generate-summary` input is `true`. +If you have a MATLAB Test license and the `generate-summary` input is `true`, you can view test results and code coverage metrics for your source code in the GitHub job summary. -Workflow run summary page showing four passed tests from a single test file. The MATLAB Code Coverage table displays the collected code coverage metrics for the source code. In the All tests table, the expanded row displays a table of test results for the test file. +GitHub job summary showing four passed tests from a single test file. The MATLAB Code Coverage table displays the collected code coverage metrics for the source code. In the All tests table, the expanded row displays a table of test results for the test file. ### Test Results Summary From e96643a05617c4bb22884ea402d817c68b517779 Mon Sep 17 00:00:00 2001 From: Houman Rastegarfar Date: Mon, 1 Jun 2026 14:09:40 -0400 Subject: [PATCH 10/11] Fix table formatting to pass prettier check Align all table rows to the same column width after adding the generate-summary row and updating the ™ entity. Co-Authored-By: Claude Opus 4.6 --- README.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 387da3a..422c070 100644 --- a/README.md +++ b/README.md @@ -114,26 +114,26 @@ By default, the action includes any files in your project that have a `Test` lab The **Run MATLAB Tests** action accepts optional inputs. For example, you can add folders to the MATLAB search path, control which tests to run, and generate various artifacts. -| Input | Description | -| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `source-folder` |

(Optional) Location of the folder containing source code, specified as a path relative to the project root folder. The specified folder and its subfolders are added to the top of the MATLAB search path. If you specify `source-folder` and then generate a coverage report, the action uses only the source code in the specified folder and its subfolders to generate the report. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `source-folder: source`
**Example:** `source-folder: source/folderA; source/folderB`

| -| `select-by-folder` |

(Optional) Location of the folder used to select test suite elements, specified as a path relative to the project root folder. To create a test suite, the action uses only the tests in the specified folder and its subfolders. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `select-by-folder: test`
**Example:** `select-by-folder: test/folderA; test/folderB`

| -| `select-by-tag` |

(Optional) Test tag used to select test suite elements. To create a test suite, the action uses only the test elements with the specified tag.

**Example:** `select-by-tag: Unit`

| -| `strict` |

(Optional) Option to apply strict checks when running tests, specified as `false` or `true`. By default, the value is `false`. If you specify a value of `true`, the action generates a qualification failure whenever a test issues a warning.

**Example:** `strict: true`

| -| `use-parallel` |

(Optional) Option to run tests in parallel, specified as `false` or `true`. By default, the value is `false` and tests run in serial. If the test runner configuration is suited for parallelization, you can specify a value of `true` to run tests in parallel. This input requires a Parallel Computing Toolbox license.

**Example:** `use-parallel: true`

| -| `output-detail` |

(Optional) Amount of event detail displayed for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action displays failing and logged events at the `detailed` level and test run progress at the `concise` level.

**Example:** `output-detail: verbose`

| -| `logging-level` |

(Optional) Maximum verbosity level for logged diagnostics included for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action includes diagnostics logged at the `terse` level.

**Example:** `logging-level: detailed`

| -| `test-results-html` |

(Optional) Location to write the test results in HTML format, specified as a folder path relative to the project root folder.

**Example:** `test-results-html: test-results`

| -| `test-results-pdf` |

(Optional) Location to write the test results in PDF format, specified as a file path relative to the project root folder. On macOS platforms, this input is supported in MATLAB R2020b and later.

**Example:** `test-results-pdf: test-results/results.pdf`

| -| `test-results-junit` |

(Optional) Location to write the test results in JUnit-style XML format, specified as a file path relative to the project root folder.

**Example:** `test-results-junit: test-results/results.xml`

| -| `test-results-simulink-test` |

(Optional) Location to export Simulink Test Manager results in MLDATX format, specified as a file path relative to the project root folder. This input requires a Simulink Test license and is supported in MATLAB R2019a and later.

**Example:** `test-results-simulink-test: test-results/results.mldatx`

| -| `code-coverage-html` |

(Optional) Location to write the code coverage results in HTML format, specified as a folder path relative to the project root folder. The results include statement and function coverage metrics.

**Example:** `code-coverage-html: code-coverage`

| -| `code-coverage-cobertura` |

(Optional) Location to write the code coverage results in Cobertura XML format, specified as a file path relative to the project root folder.

**Example:** `code-coverage-cobertura: code-coverage/coverage.xml`

| +| Input | Description | +| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `source-folder` |

(Optional) Location of the folder containing source code, specified as a path relative to the project root folder. The specified folder and its subfolders are added to the top of the MATLAB search path. If you specify `source-folder` and then generate a coverage report, the action uses only the source code in the specified folder and its subfolders to generate the report. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `source-folder: source`
**Example:** `source-folder: source/folderA; source/folderB`

| +| `select-by-folder` |

(Optional) Location of the folder used to select test suite elements, specified as a path relative to the project root folder. To create a test suite, the action uses only the tests in the specified folder and its subfolders. You can specify multiple folders using a colon-separated or semicolon-separated list.

**Example:** `select-by-folder: test`
**Example:** `select-by-folder: test/folderA; test/folderB`

| +| `select-by-tag` |

(Optional) Test tag used to select test suite elements. To create a test suite, the action uses only the test elements with the specified tag.

**Example:** `select-by-tag: Unit`

| +| `strict` |

(Optional) Option to apply strict checks when running tests, specified as `false` or `true`. By default, the value is `false`. If you specify a value of `true`, the action generates a qualification failure whenever a test issues a warning.

**Example:** `strict: true`

| +| `use-parallel` |

(Optional) Option to run tests in parallel, specified as `false` or `true`. By default, the value is `false` and tests run in serial. If the test runner configuration is suited for parallelization, you can specify a value of `true` to run tests in parallel. This input requires a Parallel Computing Toolbox license.

**Example:** `use-parallel: true`

| +| `output-detail` |

(Optional) Amount of event detail displayed for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action displays failing and logged events at the `detailed` level and test run progress at the `concise` level.

**Example:** `output-detail: verbose`

| +| `logging-level` |

(Optional) Maximum verbosity level for logged diagnostics included for the test run, specified as `none`, `terse`, `concise`, `detailed`, or `verbose`. By default, the action includes diagnostics logged at the `terse` level.

**Example:** `logging-level: detailed`

| +| `test-results-html` |

(Optional) Location to write the test results in HTML format, specified as a folder path relative to the project root folder.

**Example:** `test-results-html: test-results`

| +| `test-results-pdf` |

(Optional) Location to write the test results in PDF format, specified as a file path relative to the project root folder. On macOS platforms, this input is supported in MATLAB R2020b and later.

**Example:** `test-results-pdf: test-results/results.pdf`

| +| `test-results-junit` |

(Optional) Location to write the test results in JUnit-style XML format, specified as a file path relative to the project root folder.

**Example:** `test-results-junit: test-results/results.xml`

| +| `test-results-simulink-test` |

(Optional) Location to export Simulink Test Manager results in MLDATX format, specified as a file path relative to the project root folder. This input requires a Simulink Test license and is supported in MATLAB R2019a and later.

**Example:** `test-results-simulink-test: test-results/results.mldatx`

| +| `code-coverage-html` |

(Optional) Location to write the code coverage results in HTML format, specified as a folder path relative to the project root folder. The results include statement and function coverage metrics.

**Example:** `code-coverage-html: code-coverage`

| +| `code-coverage-cobertura` |

(Optional) Location to write the code coverage results in Cobertura XML format, specified as a file path relative to the project root folder.

**Example:** `code-coverage-cobertura: code-coverage/coverage.xml`

| | `code-coverage-metric-level` |

(Optional) Level of code coverage metrics to include in the GitHub job summary, specified as `statement`, `decision`, `condition`, or `mcdc`. By default, the action uses the highest level (`mcdc`) when generating the coverage summary, which results in a table that includes the function, statement, decision, condition, and modified condition/decision coverage (MC/DC) metrics. Use this input to include metrics up to and including a specific level, instead of the highest possible level. For example, to include only function and statement coverage metrics, specify `code-coverage-metric-level` as `statement`. For more information about coverage metric levels, see [Types of Code Coverage for MATLAB Source Code](https://www.mathworks.com/help/matlab-test/ug/types-of-code-coverage-for-matlab-source-code.html).

For the action to include coverage metrics in the GitHub job summary, the following requirements must be met:

  • MATLAB Test™ must be installed and licensed on the runner.
  • You must not specify the `code-coverage-html` or `code-coverage-cobertura` inputs. If you specify either input, the action writes the code coverage results to the specified location but does not include coverage metrics in the GitHub job summary.

**Example:** `code-coverage-metric-level: statement`

| -| `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| -| `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| -| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. Generating test and coverage summaries requires a MATLAB Test licesne.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| -| `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| +| `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| +| `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| +| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. Generating test and coverage summaries requires a MATLAB Test licesne.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| +| `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| ## View Test and Coverage Results From 9e150a67e5204392f89facf2067744fa02f3ddb7 Mon Sep 17 00:00:00 2001 From: mw-hrastega <48831250+mw-hrastega@users.noreply.github.com> Date: Wed, 3 Jun 2026 13:59:09 -0400 Subject: [PATCH 11/11] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 422c070..e963cef 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ The **Run MATLAB Tests** action accepts optional inputs. For example, you can ad | `code-coverage-metric-level` |

(Optional) Level of code coverage metrics to include in the GitHub job summary, specified as `statement`, `decision`, `condition`, or `mcdc`. By default, the action uses the highest level (`mcdc`) when generating the coverage summary, which results in a table that includes the function, statement, decision, condition, and modified condition/decision coverage (MC/DC) metrics. Use this input to include metrics up to and including a specific level, instead of the highest possible level. For example, to include only function and statement coverage metrics, specify `code-coverage-metric-level` as `statement`. For more information about coverage metric levels, see [Types of Code Coverage for MATLAB Source Code](https://www.mathworks.com/help/matlab-test/ug/types-of-code-coverage-for-matlab-source-code.html).

For the action to include coverage metrics in the GitHub job summary, the following requirements must be met:

  • MATLAB Test™ must be installed and licensed on the runner.
  • You must not specify the `code-coverage-html` or `code-coverage-cobertura` inputs. If you specify either input, the action writes the code coverage results to the specified location but does not include coverage metrics in the GitHub job summary.

**Example:** `code-coverage-metric-level: statement`

| | `model-coverage-html` |

(Optional) Location to write the model coverage results in HTML format, specified as a folder path relative to the project root folder. This input requires a Simulink Coverage™ license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-html: model-coverage`

| | `model-coverage-cobertura` |

(Optional) Location to write the model coverage results in Cobertura XML format, specified as a file path relative to the project root folder. This input requires a Simulink Coverage license and is supported in MATLAB R2018b and later.

**Example:** `model-coverage-cobertura: model-coverage/coverage.xml`

| -| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. Generating test and coverage summaries requires a MATLAB Test licesne.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| +| `generate-summary` |

(Optional) Option to generate summaries of test and coverage results in the GitHub job summary, specified as `true` or `false`. By default, the value is `true`. If you specify a value of `false`, the action does not generate test and coverage summaries in the GitHub job summary. Generating test and coverage summaries requires a MATLAB Test license.

For more information about test and coverage summaries, see [View Test and Coverage Results](#view-test-and-coverage-results).

**Example:** `generate-summary: false`

| | `startup-options` |

(Optional) MATLAB startup options, specified as a list of options separated by spaces. For more information about startup options, see [Commonly Used Startup Options](https://www.mathworks.com/help/matlab/matlab_env/commonly-used-startup-options.html).

Using this input to specify the `-batch` or `-r` option is not supported.

**Example:** `startup-options: -nojvm`
**Example:** `startup-options: -nojvm -logfile output.log`

| ## View Test and Coverage Results