{"id":18723236,"url":"https://github.com/apjanke/octave-testify","last_synced_at":"2025-07-02T06:03:55.346Z","repository":{"id":69291044,"uuid":"168273489","full_name":"apjanke/octave-testify","owner":"apjanke","description":"New BIST (Built-In Self Test) functions for GNU Octave","archived":false,"fork":false,"pushed_at":"2022-09-11T22:05:13.000Z","size":309,"stargazers_count":4,"open_issues_count":24,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-27T11:12:48.754Z","etag":null,"topics":["gnu-octave","octave"],"latest_commit_sha":null,"homepage":null,"language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apjanke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-30T03:33:54.000Z","updated_at":"2024-01-27T08:47:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"97a43442-8874-4f94-a163-a6dcde35a738","html_url":"https://github.com/apjanke/octave-testify","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/apjanke/octave-testify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apjanke%2Foctave-testify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apjanke%2Foctave-testify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apjanke%2Foctave-testify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apjanke%2Foctave-testify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apjanke","download_url":"https://codeload.github.com/apjanke/octave-testify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apjanke%2Foctave-testify/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263083562,"owners_count":23411162,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gnu-octave","octave"],"created_at":"2024-11-07T13:48:08.810Z","updated_at":"2025-07-02T06:03:55.315Z","avatar_url":"https://github.com/apjanke.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Testify – New test/BIST functions for GNU Octave\n\nThis is a collection of new and enhanced BIST (Built-In Self-Test) related functions for Octave.\n\nThese override and replace some of Octave’s current test functions.\nThis is intentional - this package started out as just a patch to Octave’s `__run_test_suite__`. But it grew into a full rewrite of the testing code.\nThe goal here is to prototype something that might be a step forward for Octave’s current testing functionality.\n\n## Goals\n\nThe goals of Testify’s new test functions are:\n\n* Richer abstractions for representing test results\n* Nicer output format\n  * Including summary results that make it easier to copy-paste meaningful test failure reports to the octave-maintainers list\n* Convenience functions for testing packages and related code units\n* Integration with CI (“continuous integration”) platforms/harnesses\n\nSee files in the `doc-project` directory for more documentation.\n\n### Non-Goals\n\nTestify does _not_ implement [Matlab’s unit test framework](https://www.mathworks.com/help/matlab/matlab-unit-test-framework.html), or attempt to be compatible with it.\nThis is just a “richer” way of doing Octave’s current BIST tests, using its existing data model.\n\nIf you _are_ interested in seeing a clone of xUnit or Matlab’s unit test framework, go [add a comment on Issue #5](https://github.com/apjanke/octave-testify/issues/5) to indicate your interest.\nIf enough people want it, I’ll try to make it happen.\n\n## Installation and usage\n\n### Quick start\n\nTo get started using or testing this project, install it and its dependencies using Octave’s `pkg` function:\n\n```octave\npkg install -forge doctest\npkg install https://github.com/apjanke/octave-testify/releases/download/v0.3.3/testify-0.3.3.tar.gz\npkg load doctest testify\n```\n\nThe `doctest` package is optional.\n\n### Installation for development\n\n* Install the `doctest` package\n  * `pkg install -forge doctest`\n* Clone the repo.\n  * `git clone https://github.com/apjanke/octave-testify`\n* Add its `inst` directory to the Octave path\n  * `addpath (\"/path/to/my/cloned/octave-testify/inst\")`\n\n### Usage\n\nThen, call one of Testify’s functions:\n\n* `runtests2` – Run tests in files, directories, classes, pkg packages, or in Octave itself.\n* `test2` – A replacement for Octave’s regular `test`, with slight enhancements. Tests a single file.\n* `__run_test_suite2__` – Just like Octave’s regular `__run_test_suite__`, but with (IMHO) nicer output.\n* `__run_tests_and_exit__` – Runs tests and exits, like it says.\n* `testify.install_and_test_forge_pkgs` – Tests Forge packages\n\nSee the helptext of these functions for details. (E.g. `help runtests2` in Octave.)\n\n## What's In Here\n\nConceptually, all the code in `inst` here could drop right in to `scripts/testfun/` in the `octave` hg repo. The main test functions users are expected to use are in the root namespace.\n\nThere's a whole object-oriented interface to the tests under the `+testify` namespace, but that's intended primarily for Testify's internal use. Once it's stable and proven to be useful, perhaps we'll make it public.\n\n### Externally Visible Stuff\n\n\u003cdl\u003e\n\u003cdt\u003e\u003ccode\u003eruntests2\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003eRuns tests on one or more files, directories, classes, or pkg packages.\u003c/dd\u003e\n\u003cdt\u003e\u003ccode\u003etest2\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003eA replacement for Octave’s current \u003ccode\u003etest\u003c/code\u003e. Nothing special about it just yet.\u003c/dd\u003e\n\u003cdt\u003e\u003ccode\u003e__run_test_suite2__\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003eA replacement for Octave’s current \u003ccode\u003e__run_test_suite__\u003c/code\u003e.\nNothing much new here; just internal changes to support the \u003ccode\u003eBistRunResult\u003c/code\u003e abstraction.\u003c/dd\u003e\n\u003cdt\u003e\u003ccode\u003e__run_tests_and_exit__\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003eA function for running tests and using \u003ccode\u003eoctave\u003c/code\u003e’s exit status to indicate success or failure.\nFor use in Continuous Integration or automated testing environments.\u003c/dd\u003e\n\u003cdt\u003e\u003ccode\u003etestify.install_and_test_forge_pkgs\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003eA function for testing the installation and internal package tests/BISTs of Octave Forge packages.\u003c/dd\u003e\n\u003c/dl\u003e\n\n### Notable Internal Stuff\n\n\u003cdl\u003e\n\u003cdt\u003e\u003ccode\u003etestify.internal.BistRunResult\u003c/code\u003e\u003c/dt\u003e\n\u003cdd\u003eAn object that collects the various counters and lists associated with BIST run results.\nThis is a replacement for the current technique of managing a half dozen primitive variables in parallel.\n\u003c/dd\u003e\n\u003c/dl\u003e\n\n## Authors\n\nTestify is primarily written and maintained by [Andrew Janke](https://github.com/apjanke).\n\n## Acknowledgments\n\nThanks to [Polkadot Stingray](https://www.youtube.com/watch?v=3ad4NsEy1tg), [BAND-MAID](https://bandmaid.tokyo/), and [Brian Eno](https://en.wikipedia.org/wiki/Ambient_1:_Music_for_Airports) for powering my coding.\n\nThanks to [Mike Miller](https://github.com/mtmiller) and and [Colin B. Macdonald](https://github.com/cbm755) for taking an interest in this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapjanke%2Foctave-testify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapjanke%2Foctave-testify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapjanke%2Foctave-testify/lists"}