This action performs unit tests for GNU Octave and Matlab using the unit testing framework MOxUnit. Documentation tests and coverage reports are supported via MOdox and MOCov.
This action uses the qmrlab/octaveci:latest
docker image which contains GNU-Octave 5.2.0 and the following packages/versions:
Package Name | Version | Installation directory
----------------+---------+-----------------------
control | 3.2.0 | /usr/share/octave/packages/control-3.2.0
data-smoothing | 1.3.0 | /usr/share/octave/packages/data-smoothing-1.3.0
dataframe | 1.2.0 | /usr/share/octave/packages/dataframe-1.2.0
dicom | 0.2.2 | /usr/share/octave/packages/dicom-0.2.2
financial | 0.5.3 | /usr/share/octave/packages/financial-0.5.3
image | 2.12.0 | /usr/share/octave/packages/image-2.12.0
io | 2.4.13 | /usr/share/octave/packages/io-2.4.13
optim | 1.6.0 | /usr/share/octave/packages/optim-1.6.0
parallel | 3.1.3 | /usr/share/octave/packages/parallel-3.1.3
statistics | 1.4.1 | /usr/share/octave/packages/statistics-1.4.1
strings | 1.2.0 | /usr/share/octave/packages/strings-1.2.0
struct | 1.0.16 | /usr/share/octave/packages/struct-1.0.16
- at your github repo click on the "Actions" button or go to https://github.com/[user]/[repo]/actions
- add a new workflow by clicking on "New workflow"
- click on "set up a workflow yourself" to create you .yml configuration file
- paste this: (where
mySimpleTest1.m
is a test script of function placed in your repo)
name: moxunittest
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: joergbrech/moxunit-action@v1
with:
tests: mySimpleTest1.m
- commit the change and go back to actions to check the build status.
In the simplest case
steps:
- uses: actions/checkout@v2
- uses: joergbrech/moxunit-action@v1
runs all MOxUnit test cases found in this repository. A more complex use case could look like this:
steps:
- uses: actions/checkout@v2
- uses: joergbrech/moxunit-action@v1
with:
tests: tests my_extra_testfile.m
src: src thirdparty util
with_coverage: true
doc_tests: true
cover_xml_file: coverage.xml
- uses: codecov/codecov-action@v1
with:
file: ./coverage.xml
To use your test data along with Octave packages, you can see this example configuration file.
All file and directory paths are interpreted as relative to the working directory, which defaults to the Github Workspace. Optionally, the working-directory can be changed with the argument working_directory
, see below.
Input | Description | Usage |
---|---|---|
tests |
files or directories containing the MOxUnit test cases | Optional, defaults to the root directory of the repo. All subdirectories are added recursively. |
src |
directories to be added to the Octave search path before running the tests. These directories will be considered in the coverage reports, if coverage is enabled. | Optional |
data |
Directory for test data | Optional |
pkg |
Octave packages to load. Available options: image io optim parallel statistics struct |
Optional |
ext |
External resources to add to the search put (excluded from coverage) | Optional |
log_file |
store the output in file output | Optional |
doc_tests |
set to true to run documentation tests with MOdox |
Optional |
with_coverage |
set to true to record coverage using MOCov |
Optional |
cover_xml_file |
store coverage XML output in file | Optional |
cover_html_dir |
store coverage HTML output in directory | Optional |
cover_junit_xml_file |
store test results in junit XML file | Optional |
cover_json_file |
store coverage report in json file for processing by coveralls.io | Optional |
working_directory |
relative path to a working directory under the github workspace, defaults to . . |
Optional |