This project now supports a dev-only Classic ASP test harness built with aspunit.
public/tests/tests/aspunit/The tests/ IIS application assumes the repository layout keeps tests/, public/, core/, and app/ as sibling directories.
| Type | Path | Purpose |
|---|---|---|
| Create | tests/web.config |
IIS/default-document config for the isolated test app |
| Create | tests/unit/web.config |
Mirrored config for nested unit pages that load config-aware code |
| Create | tests/component/web.config |
Mirrored config for nested component pages that load config-aware code |
| Create | tests/integration/web.config |
Mirrored config for nested integration pages that load config-aware code |
| Create | tests/sync-webconfigs.vbs |
Utility script to mirror tests/web.config into nested test folders |
| Create | tests/bootstrap.asp |
Shared test bootstrap and runtime reset helpers |
| Create | tests/PlainRunnerTheme.asp |
Local runner theme that removes CDN dependence from the test UI |
| Create | tests/test-manifest.asp |
Single source of truth for registered test pages |
| Create | tests/run-all.asp |
Browser runner that aggregates all test pages |
| Vendor | tests/aspunit/Lib/* |
Upstream aspunit framework files |
| Vendor | tests/aspunit/LICENSE-MIT |
Upstream aspunit license for vendored third-party code |
| Create | tests/unit/TestHelpers.asp |
Deterministic helper-function unit tests |
| Create | tests/unit/TestControllerRegistry.asp |
Controller whitelist/format unit tests |
| Create | tests/component/TestHomeController.asp |
Controlled component-level controller test |
| Create | tests/integration/TestMvcDispatch.asp |
Narrow router/dispatch smoke test |
| Reference | public/web.config |
Source of mirrored config keys for the test app |
| Reference | core/helpers.asp |
Helper functions and config-loading behavior under test |
| Reference | core/mvc.asp |
Dispatcher behavior used by the smoke test |
| Reference | core/lib.ControllerRegistry.asp |
Whitelist behavior under test |
| Verify | public/ site |
Confirm production app exposes no test routes/pages |
public/.tests/.tests/ app. This repo ships tests/web.config with enableParentPaths="true" because the bootstrap and integration pages include sibling files from ../core/ and ../app/.tests/ app root or directly to run-all.asp.tests/web.config, run cscript //nologo tests\sync-webconfigs.vbs to refresh the nested copies used by the unit, component, and integration pages.Example layout:
http://localhost/http://localhost/tests-dev/tests/run-all.asp includes the aspunit library and the manifest.tests/run-all.asp also applies PlainRunnerTheme.asp, a local runner theme that avoids the upstream CDN dependency in aspunit’s default UI.tests/test-manifest.asp explicitly registers each test page.tests/bootstrap.asp provides the shared runtime setup:
The integration test page includes core/mvc.asp directly because that is the only first-wave test that needs dispatcher behavior.
Because GetAppSetting() uses Server.MapPath("web.config"), nested test folders also need a mirrored web.config alongside the executing test pages that rely on config-aware runtime files. Use tests/sync-webconfigs.vbs after changing tests/web.config.
The manifest is manual by design. There is no filesystem auto-discovery.
Open the browser runner:
Browse to run-all.asp within the tests/ IIS application, for example:
http://localhost/tests-dev/run-all.asp
aspunit renders a UI in runner mode and loads each registered page with ?task=test behind the scenes.
tests/unit/ for deterministic helper or registry teststests/component/ for direct controller/object tests with controlled setuptests/integration/ for narrow runtime smoke coverage.asp file that:
../aspunit/Lib/ASPUnit.asp../bootstrap.aspASPUnit.AddModule(...)ASPUnit.Run()tests/test-manifest.asp.run-all.asp.public/.tests/web.config.run-all.asp loads in the separate tests/ IIS app.public/ still exposes no test runner pages or test routes.public/web.config; the test app uses a minimal mirrored config in tests/web.config.Powered by TurnKey Linux.