-
Notifications
You must be signed in to change notification settings - Fork 70
Testing
The add-in uses three layers of tests. Contributors should run the layers relevant to their change before opening a pull request.
Hundreds of assertions across modTest* modules (encoding, JSON, hashing, conflicts, query builder, etc.).
Open the add-in or development build, then in the Immediate Window:
?VCS.RunTestsFilter examples:
?VCS.RunTests("modTestEncoding")
?VCS.RunTests("SQL", "-slow")
?VCS.RunTests("TestParseJoinExpression")Tags use '@Tag("name") in module or procedure headers. Prefix - to exclude.
Set Default Test Filter under Options → Advanced, then click Run Tests on the ribbon. Leave blank to run all tests.

- Progress in
frmVCSMainconsole - JSON summary and
TestRun_*.logunder the add-inlogs/folder
When the run finishes, the console shows a summary of passed, failed, and skipped tests along with timing:

Imports each fixture, exports twice, checks idempotency and drift. Queries are fully covered today; other object types follow the same harness pattern.
See Regression Testing for fixtures, rebaseline mode, and contribution workflow.
?VCS.RunRoundtripTests
?VCS.RunRoundtripTests("C:\path\to\fixtures\", True) ' rebaseline — review diff!Testing.accdb.src in the repository — full build/export scenarios for the add-in itself and sample projects.
Use after large import/export or build pipeline changes.
When Allow Arbitrary VBA Execution is enabled:
vcs_run_vba(<addin-path>, "MCP_TempFunction = VCS.RunTests(""SQL"", ""-slow"")")
See MCP and Automation.
| Change type | Minimum testing |
|---|---|
| Options / UI copy | Manual smoke export |
| Export/import logic |
RunTests + affected RunRoundtripTests
|
| Query parser |
RunRoundtripTests on Testing/Fixtures/queries/
|
| Build/merge | Integration build + targeted unit tests |
- Editing and Contributing
- Regression Testing
- Repository
AGENTS.md