iset/isetcam/testing-workflow
Claude Code and agent skill by iset/isetcam
- community
Checking that the SKILL.md file is still in the repository.
Use when running or choosing ISETCam tests after a code change — ieUnitTest, ieTutorialTest, ieExampleTest, ieTestReport, selecting/starting a partial run, the % SkipFile marker, or diagnosing a failing/interrupted test run.
Install
npx vskill@latest install iset/isetcam/testing-workflowSKILL.md
Testing ISETCam
This guide is for developers who have changed ISETCam and want to check that their work has not broken existing behavior. Most users do not need to run these tests.
Before testing
Start MATLAB with ISETCam and its subdirectories on the path (see the matlab-environment-setup skill). A clean MATLAB session is recommended for tutorial and example tests because those runners reset ISET state and close figures between scripts.
ISETCam provides three repository-wide runners:
| Runner | Purpose | |
|---|---|---|
ieUnitTest | Run automated function-based unit tests | |
ieTutorialTest | Run tutorial scripts as smoke tests | |
ieExampleTest | Run example scripts as smoke tests |
A practical testing workflow
During development, begin with the smallest relevant test:
- Run the unit-test runner in the
_tests_directory nearest your change. - Run any directly related tutorial or example with
'selection'. - Run
ieUnitTestbefore sharing or merging a substantial change. - Run the complete tutorial or example suite when the change affects shared
setup, data, graphics, or broadly used APIs.
This progression usually catches problems faster than beginning with every repository test.
Unit tests
Run all ISETCam unit tests:
Unit tests are stored in _tests_ directories near the code they protect. Most areas also provide a focused runner, for example:
The returned value is a MATLAB TestResult array. The runner prints a summary, and the same results can be reported again when needed:
Prefer colocated function-level tests named test_<functionname>.m when adding or changing behavior. Good function-level tests cover API/shape expectations, key behavior or mapping checks, stable golden-value fingerprints with named tolerances, and important input-validation cases.
Treat isetvalidate as the broader system/regression validation suite when relevant to a change.
Tutorial and example tests
Run an entire suite:
These runners recursively discover plain-text t_*.m and s_*.m files in the corresponding directory. Each script runs with fresh ISET state so it cannot depend on variables or objects created by an earlier script.
Run one script with selection
Use 'selection' while developing or debugging one tutorial or example:
The selected value may be a script stem, a file name including .m, a path relative to the tutorial or example directory, or a full path.
Begin partway through a suite with start
Use 'start' to run the named script and every script after it in the deterministic, path-sorted execution plan:
This is useful after fixing a failure in a long run. It starts a new run; it does not modify or resume the earlier checkpoint.
Skip unsuitable scripts
Place this marker on its own comment line when a tutorial or example should be discovered but not executed automatically:
Whitespace around the marker is accepted, but the form above is preferred. Use it sparingly for scripts requiring unavailable data or toolboxes, manual interaction, excessive runtime, or a documented unresolved failure. The legacy % UTTBSkip marker remains supported for compatibility with older files, but new and updated files should use % SkipFile.
Scripts that generate or refresh repository data should instead be named data_*.m; they are not tutorial or example smoke-test sources (see the authoring-tutorials-examples skill).
Reading results
Tutorial and example runners return a run struct containing the planned files, per-file status, errors, timing, and checkpoint paths. Each file has status Passed, Failed, or Skipped.
The runner prints a summary automatically. Use ieTestReport to list files of interest:
Each run creates a timestamped directory under local/ containing:
checkpoint.mat— the latest durable run state;progress.log— chronological progress and skip reasons; andplanned-files.txt— the exact execution order.
If MATLAB exits before returning a run variable, report directly from the checkpoint or its containing directory:
A checkpoint whose state remains Running represents a run that did not finish normally. Its unfinished count and last active file help identify where investigation should begin. For the schema and internals behind these checkpoints, see the test-runner-architecture skill.
When a test fails
Re-run the smallest failing unit test, tutorial, or example in a clean MATLAB session. Check whether the failure depends on external data, optional toolboxes, graphics, or user interaction before marking it with SkipFile. Tests should be deterministic and should not require state left by another test.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.github/skills/testing-workflow/SKILL.md
Popularity
- Repository stars
- 171
- Repository forks
- 59
- 7-day trend score
- 26
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 6 Sep 2026, 2 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/iset/isetcam/testing-workflow)