Releases: oznetmaster/CrestronHomeNUnit
Release list
Crestron Home NUnit v2.1.2
Crestron Home NUnit v2.1.2
Exact Android test selections can now run a mixture of ordinary and Explicit cases. Previously, NUnit adapter 6.3.0's Current execution path omitted the selected Explicit cases when ordinary cases were included. The workflow coverage check rejected the incomplete results, but manual-event tests never reached their operator prompts.
Selected execution now uses the adapter's documented Legacy discovery mode and Relaxed explicit mode with the same generated, pinned exact-name filter. The initial full inventory discovery stays in Current mode. Unselected ordinary and Explicit tests remain excluded. Runs without an exact selection still reject Explicit cases before execution. No device authority, physical prerequisite, restoration check or coverage requirement is relaxed.
Validation: all 349 offline workflow tests passed. A real-adapter regression reproduced the omission before the fix and passed afterwards for ordinary, all-explicit and mixed selections, including duplicate names, filter-like characters in names, and deliberately failing unselected ordinary and Explicit cases. No physical devices were used by these regression tests. Live manual-event execution and a complete submission rehearsal remain to be verified. Earlier incomplete runs remain failed; this release does not rewrite their evidence. NUnit remains 5.0.0 and the processor runner implementation is unchanged.
Updating
Update the Windows CLI/runner distribution or CrestronHomeNUnit.TestAdapter to 2.1.2. No plan changes are required. Adopt the release in a new pinned workflow attempt; keep completed and failed attempts on their original tool versions. See https://github.com/oznetmaster/CrestronHomeNUnit/blob/main/docs/AndroidUiTesting.md for exact selection and evidence requirements. Visual Studio and VS Code use the same adapter.
Copyright (c) 2026 Neil Colvin. Licensed under the MIT License; see LICENSE.
Crestron Home NUnit v2.1.1
Crestron Home NUnit v2.1.1
Release workflows can opt in to reusing a stored, uninstalled release package with releaseCandidate.reuseVerifiedStoredPackage. The runner verifies its SHA-256 against the pinned candidate, its local manifest identity, and one exact local catalogue entry before installing a new instance. It rejects newer or ambiguous entries, different bytes, changing catalogue state, and any installed package model or alias. Verification runs under the existing processor lease using pinned SSH; it does not upload, delete, renumber or rebuild the release, or reboot the processor.
The retained actual-reuse.json records how the package was verified. The existing deployment receipt explicitly distinguishes verified storage reuse from a new import. Reuse is disabled by default; ordinary Debug builds and release deployments retain their existing behavior. CLI failures now include the exception type without exposing arbitrary exception text.
Validation: all 348 offline workflow tests passed, including 20 stored-release checks covering exact bytes, mismatched identity, ambiguous catalogue entries, unsafe paths, concurrent changes and existing instances. Live activation through the new reuse path is pending; these results do not establish a completed submission rehearsal. NUnit remains 5.0.0, and processor runner binaries are unchanged by this workflow fix.
Updating
Update the Windows CLI/runner distribution or CrestronHomeNUnit.TestAdapter to 2.1.1. Existing plans need no changes. Enable reuse only for a verified, uninstalled stored release; see https://github.com/oznetmaster/CrestronHomeNUnit/blob/main/docs/ReleaseCandidateTesting.md . Visual Studio and VS Code use the same adapter.
Copyright (c) 2026 Neil Colvin. Licensed under the MIT License; see LICENSE.
Crestron Home NUnit v2.1.0
Crestron Home NUnit v2.1.0
Android workflows can now switch between explicitly permitted saved Homes before running a test phase. Set AllowedStartingHomes in each Android profile when sequential phases share one emulator. The workflow selects the expected Home, checks its saved local processor address and port, and returns to Home before exposing the session to tests.
Unknown screens, unapproved starting Homes and ambiguous destinations stop without speculative input. Uncertain input is not replayed or reported as restored. Both profiles must use the same emulator reservation. A matching saved address is connection-settings evidence; it does not replace installed-driver or live-route checks.
Android profile equality now compares permitted Home names by value, so independent JSON reads preserve session and final-cleanup checks.
Validation: 159 Android tests passed. Live navigation switched between two saved processor Homes, verified both saved addresses and ports, and returned to the original Home. The downstream DevTools regression suite passed all 1,680 tests. These checks establish navigation and integration behavior, not a completed driver submission rehearsal. Processor execution remains on NUnit 5.0.0; this release does not change the processor runner.
Updating
Update the Windows CLI/runner distribution or CrestronHomeNUnit.TestAdapter to 2.1.0. Existing profiles need no changes: without AllowedStartingHomes, session opening remains read-only and requires the expected Home already displayed. See https://github.com/oznetmaster/CrestronHomeNUnit/blob/main/docs/AndroidUiTesting.md for profile configuration. Visual Studio and VS Code continue to use the same VSTest adapter.
Copyright (c) 2026 Neil Colvin. Licensed under the MIT License; see LICENSE.
Crestron Home NUnit v2.0.0
Crestron Home NUnit v2.0.0
Processor test packages now default to released NUnit 5.0.0 while continuing to target .NET Framework 4.7.2. This is a major tooling update because NUnit 5 changes assertion APIs: await ThrowsAsync, CatchAsync and DoesNotThrowAsync, including before reading returned exception properties. Existing NUnit 4 projects can explicitly set ProcessorNUnitVersion=4.6.1; keep the test project's framework version aligned with its package host.
The embedded runner uses NUnit 5's cooperative cancellation API. It checks dependency expansion before setup and rejects any prerequisite outside the requested suite or selected tests, preventing an excluded Live test from being pulled into an ordinary run.
Framework self-tests use the final NUnit 5 source, retaining documented writable-file and repeated-discovery adaptations. Compiler tests use the exact original public NUnit metadata inside merged packages, with their assertions unchanged. The disposed-event and stream-comparison fixes now come from upstream. A separate unmodified diagnostic suite and its failures remain documented.
Validation: all 523 tooling tests passed. Packaged Windows self-tests passed twice (2,480 passed and 58 skipped each round). Processor rounds had no failed tests: 2,477 passed/8 timing warnings/53 skipped, then 2,482 passed/3 warnings/53 skipped. All 34 compatibility tests passed twice; processor cancellation and recovery passed. Generated consumer packages passed twice with NUnit 5 (five tests) and explicitly selected NUnit 4 (two tests). These results are specific to the tested processor/runtime; warnings and skips are not passing tests.
Updating
Update the Windows CLI/runner distribution or CrestronHomeNUnit.TestAdapter to 2.0.0, and use the matching source/package tooling. Read https://github.com/oznetmaster/CrestronHomeNUnit/blob/main/docs/NUnit5Migration.md before upgrading existing fixtures. Ordinary local NUnit tests still use NUnit3TestAdapter; Visual Studio and VS Code use the existing VSTest workflow adapter. Existing application drivers do not need to be rebuilt merely to update test tooling.
Copyright (c) 2026 Neil Colvin. Licensed under the MIT License; see LICENSE.
Crestron Home NUnit v1.12.4
Crestron Home NUnit v1.12.4
Android workflow discovery now accepts NUnit Explicit cases when the plan supplies exact androidTests.requiredTests names. Previously, discovery rejected these cases before the explicitly selected tests could execute. Runs without an exact selection continue to reject Explicit cases; ignored and invalid discovery entries remain errors.
The full discovery inventory and selected/excluded partition remain retained. Results must still match the selected cases exactly and pass without skipped cases. This change does not turn a selected subset into complete-project coverage or authorize physical device actions.
Validation: all 328 offline workflow tests passed, including selected Explicit execution and rejection without exact selection. No new physical-device validation is claimed. NUnit remains 4.6.1.
This release also retains the corrected NuGet README links and package release-note metadata published in the 1.12.3 documentation-only adapter patch.
Updating
Update the Windows CLI/runner distribution or the CrestronHomeNUnit.TestAdapter NuGet package to 1.12.4. Existing Android profiles remain valid. No processor package redeployment is required for this host-side workflow fix.
Copyright (c) 2026 Neil Colvin. Licensed under the MIT License; see LICENSE.
Crestron Home NUnit v1.12.2
Crestron Home NUnit v1.12.2
Saved-endpoint inspection now selects the configured Home's menu in either the grid or list view of My Systems. Previously, list view had no matching menu selector, and multiple grid cards made the global selector ambiguous. The navigator continues to reject duplicate Home names, missing menus and disabled controls.
Validation: 145 Android toolkit tests passed, including grid/list selection and rejection of another Home's menu. A focused hardware check with two saved Homes in list view verified the intended local endpoint and restored Home. This validates endpoint navigation, not physical device controls.
Updating
Update the Windows CLI/runner distribution or the CrestronHomeNUnit.TestAdapter NuGet package to 1.12.2. Existing Android profiles remain valid. No processor package redeployment is required for this navigation fix.
Copyright (c) 2026 Neil Colvin. Licensed under the MIT License; see LICENSE.
Crestron Home NUnit v1.12.1
Crestron Home NUnit v1.12.1
Fix installed-driver test phases that stopped at candidate verification despite a matching installed package. The workflow, CLI and Visual Studio adapter now consume CrestronHomeDevTools 1.13.1, which resolves full processor catalogue IDs to the correct extracted-payload directory and checks their version against the candidate.
Validation includes the workflow and adapter regression suites, a build against the published dependency package, and a hardware run of selected read-only Android fixtures. The hardware run verified the unchanged candidate before and after testing, restored Home, removed its declared temporary child and released both reservations. It does not establish coverage of every control or recovery path.
NUnit remains 4.6.1. No processor host behavior or driver under test is changed by this patch. See installed-driver testing for the supported scope.
Updating
Update the Windows CLI/runner distribution or the CrestronHomeNUnit.TestAdapter NuGet package. Existing test plans remain valid. No processor test-package redeployment is required for this dependency fix.
Copyright (c) 2026 Neil Colvin. Licensed under the MIT License; see LICENSE.
Crestron Home NUnit v1.12.0
Crestron Home NUnit v1.12.0
Run selected Android NUnit fixtures against an already-installed driver without rebuilding or redeploying it. The new installed-tests CLI command and InstalledDriverTests.RunAsync C# entry point verify the selected driver and its extracted package files before and after the test phase.
- Add optional
androidTests.requiredTeststo select exact discovered NUnit case names, including parameter values. Retain the full discovery list and selected/excluded cases; missing, extra, skipped or failed required results fail the stage. Omitting the option continues to require the complete project. - Verify retained selection settings against hashes captured before execution. Selected runs use producer receipt schema 2; evidence consumers must support and independently verify that selection rather than treating a passing subset as complete-project coverage.
- Reserve the processor and Android session for the dedicated installed-driver phase. Validate the reviewed driver identity, version, catalogue association and pinned package contents, and manage only explicitly declared temporary children.
- Report test outcome, restoration, child cleanup, candidate verification and reservation release separately. Uncertain restoration or cleanup retains reservations for inspection; physical commands are not automatically replayed.
- Raise the adapter/workflow DevTools dependency to 1.9.0 for package-file comparison. NUnit remains 4.6.1 and processor host behavior is unchanged.
Validation: the offline workflow suite and isolated NuGet/CLI acceptance passed, covering selection integrity, installed-phase handling, plan validation and rejection before hardware access. Package checks compared executed assemblies with their archives and used no source-project dependency override. Complete hardware validation of the new dedicated phase remains pending. File and identity checks do not attest running process memory or an uninterrupted driver lifetime.
Updating
Update CrestronHomeNUnit.TestAdapter and the desktop workflow tools to 1.12.0. The adapter restores CrestronHomeDevTools 1.9.0 as a dependency; the Windows CLI download includes it. Existing processor test hosts do not need redeployment for these desktop workflow additions.
See testing an unchanged installed driver, declared case selection, and workflow stages.
Crestron Home NUnit v1.11.1
Crestron Home NUnit v1.11.1
The Android workflow now preserves and verifies the complete test program used for a run. Previously, evidence consumers could identify the main fixture assembly without detecting a changed dependency or runtime setting.
- Record
producer-manifest.jsonand a run-boundproducer-pin.jsonafter discovery and before execution. The inventory covers all retained assemblies, dependencies, runtime settings, resources and discovery output. - Compare the retained files, manifest, receipt and discovery against coordinator-held reference hashes after execution. Changed, missing or added files stop the stage before it can report a passing result, including when a dependency and its manifest are replaced together.
- Bound inventory size and reject links, junctions and ambiguous paths. Fixtures must write results to their private evidence directory, leaving the retained
assembly/directory unchanged. - Extend isolated NuGet acceptance to execute the dependency-integrity regressions against the packaged Workflow assembly and verify its bytes against the release archive.
Validation: the offline workflow and evidence-integrity tests passed. Isolated package checks exercised Android regressions, workflow integrity checks, adapter discovery, ordinary NUnit consumption and refusal of missing private configuration. Cross-language verification consumed a manifest from the actual .NET implementation using the DevTools Python auditor and rejected an altered NUnit dependency. These checks used no processor, emulator or physical-device commands.
These are retained-file integrity checks, not worker authentication or proof that arbitrary fixture code executed honestly. Consumers must retain trusted pre-execution pins to verify the original test program. Old evidence cannot gain a pre-execution inventory retroactively.
Updating
Update CrestronHomeNUnit.TestAdapter and the desktop workflow tools to 1.11.1. Existing processor test hosts do not need redeployment for this desktop evidence fix. NUnit remains 4.6.1; the adapter/workflow's minimum DevTools dependency remains 1.6.0.
Crestron Home NUnit v1.11.0
Crestron Home NUnit v1.11.0
Android UI fixtures can now inspect extension pages whose controls do not fit on one screen. The shared navigation session exposes guarded scrolling in both directions, and saved-processor endpoint verification can reveal the local port on smaller screens.
- Add
CrestronHomeExtensionNavigation.ScrollDownAsyncandScrollUpAsync. Each validates the expected front page and caller assertions, sends one gesture within its observed viewport, and confirms the expected page afterward. Uncertain gestures are never automatically repeated. - Reject ambiguous, disabled or unusable front-page viewports, open selection overlays, failed assertions and cancellation before sending a scroll.
- Replace the single-scroll assumption in saved-endpoint verification with an observed search of at most eight gestures. Incorrect or ambiguous fields, no progress, an exhausted search and uncertain input fail the check while retaining bounded Home restoration.
- Document fixture responsibilities for complete coverage, edge-clipped accessibility bounds, non-saving cancellation and independent device-state restoration. Scrolling alone does not prove movement, visual correctness or complete page coverage.
Validation: 139 Android regressions passed from source and through an isolated private adapter package. Package acceptance also checked ordinary NUnit API use, workflow discovery, execution guards and the identity of executed assembly bytes. A focused development run on a headless Google Android emulator used a reduced viewport, verified the saved endpoint through two observed scrolls, and inspected all expected labelled controls across two editor views. Independent device state, Home, emulator size, original inventory, temporary-child removal and reservation release were verified. This is development integration evidence, not final submission-candidate acceptance or certification.
Updating
Update CrestronHomeNUnit.TestAdapter to 1.11.0 in Android fixture projects that need extension-page scrolling or smaller-screen endpoint verification. Use InspectAsync to record and check each viewport, bound searches explicitly, and supply reviewed navigation and non-saving close controls. These APIs do not infer physical-device operations or restoration.
The Windows runner and CLI are versioned with the release. Existing processor test hosts do not need redeployment for these desktop Android-navigation changes. NUnit remains 4.6.1 and DevTools remains 1.6.0 for the adapter/workflow dependencies.
See extension-page scrolling, emulator setup and workflow stages.