CrestronHomeNUnit.TestAdapter
2.4.0
dotnet add package CrestronHomeNUnit.TestAdapter --version 2.4.0
NuGet\Install-Package CrestronHomeNUnit.TestAdapter -Version 2.4.0
<PackageReference Include="CrestronHomeNUnit.TestAdapter" Version="2.4.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="CrestronHomeNUnit.TestAdapter" Version="2.4.0" />
<PackageReference Include="CrestronHomeNUnit.TestAdapter"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add CrestronHomeNUnit.TestAdapter --version 2.4.0
#r "nuget: CrestronHomeNUnit.TestAdapter, 2.4.0"
#:package CrestronHomeNUnit.TestAdapter@2.4.0
#addin nuget:?package=CrestronHomeNUnit.TestAdapter&version=2.4.0
#tool nuget:?package=CrestronHomeNUnit.TestAdapter&version=2.4.0
Crestron Home workflow test adapter
Version 2.4.0 also bundles CrestronHomeNUnit.Mac and its XML API
documentation. Use it from a separate .NET 10 NUnit 5 project against an explicitly
owned Appium Mac2 session. It is not available in 2.3.0. Read the
Mac setup and testing guide
for ownership, restoration and validation limits. No Workflows.xml is needed for
ordinary Mac NUnit fixtures, and the Android workflow stage does not run them.
Run a complete gated processor workflow from Visual Studio Test Explorer or VSTest-based dotnet test: local tests, processor test package deployment and activation, remote tests, optional live tests, optional production driver update and health checks, and configured cleanup.
Use a separate .NET 10 test project with Microsoft.NET.Test.Sdk and this package, both marked PrivateAssets="all". Driver and processor test projects can continue to target net472. This adapter does not replace the NUnit adapter used by ordinary local unit tests.
The package also includes CrestronHomeNUnit.Android for a separate .NET 10 NUnit UI-test project. Reference this package, NUnit, NUnit3TestAdapter and Microsoft.NET.Test.Sdk there. No Workflows.xml is needed in the UI project: the Crestron adapter discovers no workflows in that assembly, while the NUnit adapter runs its fixtures. Select the UI project through the private plan's androidTests stage, not its localTests. See Android setup. This is desktop test tooling; do not reference it from a net472 processor package.
Version 2.0.0 aligns the processor package tooling and supplied test fixtures with NUnit 5.0.0. Existing fixtures must await Assert.ThrowsAsync, Assert.CatchAsync and Assert.DoesNotThrowAsync. Explicit NUnit 4 processor packages remain supported when the test project and host versions match. Read the NUnit 5 migration guide before upgrading.
Add a Workflows.xml file to the workflow project:
<Workflows>
<Workflow id="development" name="Development processor workflow"
settingsEnvironment="CRESTRON_HOME_WORKFLOW_SETTINGS" />
</Workflows>
The package copies this file beside the test assembly automatically. Set CrestronWorkflowManifest to use a different manifest filename. Discovery reads only this public manifest and never contacts the processor.
Before starting Visual Studio, set the named environment variable to a private settings file containing planPath, userName and password. The referenced plan defines processor identity and certificate pins, source projects, package targets, suites, live inputs and cleanup. Keep credentials, plans and test results outside published source and packages.
Select the workflow in Test Explorer to run it. Individual test outcomes are reported as child results; the workflow passes only if all required stages pass. Do not include the workflow project in its own local test stage. Stop is cooperative: uncertain remote execution retains the processor lock for inspection.
See the Visual Studio guide and workflow configuration guide for setup and limitations.
Copyright (c) 2026 Neil Colvin. MIT licensed. Independent developer tooling; not affiliated with or endorsed by Crestron or the NUnit project.
Package acceptance checks
The repository's tools/Test-AdapterPackage.ps1 restores a clean consumer using an isolated cache and an exact source mapping for the package under test. It verifies workflow discovery, manifest copying, ordinary NUnit use of the Android API and the expected failure when private workflow settings are missing. It also compiles the Android regression fixtures against the packaged assemblies, compares executed tests with discovery and verifies those assembly bytes against the archive. No processor, emulator or production-source project reference is needed for these package checks. They do not replace physical workflow or driver acceptance tests.
Temporary managed-child fixtures
Version 1.10.0 adds optional androidTests.managedChildren targets to the combined workflow. The selected actual driver supplies the parent identity; the fixture receives actual created child IDs through session.Context.RequireManagedDevice(alias). Setup and cleanup use DevTools 1.6.0 under the existing reservations. Cleanup requires independently confirmed restoration, preserves failed test outcomes and removes only the run's own children. Existing plans without targets keep their previous context format.
See the plan example, fixture contract and recovery rules. The normal workflow passed a CP4-R development run with one selected editor Cancel fixture and verified restoration/removal. This is not final submission-candidate acceptance or certification.
Selected cases and an existing driver
Version 1.12.0 adds androidTests.requiredTests for exact discovered NUnit case names. A passing subset records its excluded cases and does not claim full-project coverage. The package also exposes InstalledDriverTests.RunAsync for a separate test phase against an already-installed driver, using DevTools 1.9.0 to compare the pinned package with extracted processor files. It retains separate test, restoration, owned-child cleanup and candidate-verification results without redeploying the parent driver.
See installed-driver testing for the CLI equivalent, private bindings and recovery rules. Offline package acceptance passed; a complete hardware run of this dedicated phase remains pending.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- CrestronHomeDevTools (>= 1.23.1)
- Makaretu.Dns.Multicast (>= 0.27.0)
- SSH.NET (>= 2026.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CrestronHomeNUnit.TestAdapter:
| Package | Downloads |
|---|---|
|
CrestronHomeDevTools.Automation
Durable Crestron Home submission workflow and shared test-session implementation. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.4.0 | 80 | 10/8/2026 |
| 2.3.0 | 335 | 10/7/2026 |
| 2.2.0 | 202 | 9/29/2026 |
| 2.1.2 | 110 | 9/29/2026 |
| 2.1.1 | 102 | 9/29/2026 |
| 2.1.0 | 104 | 9/29/2026 |
| 2.0.0 | 180 | 9/28/2026 |
| 1.12.4 | 116 | 9/28/2026 |
| 1.12.3 | 100 | 9/26/2026 |
| 1.12.2 | 127 | 9/25/2026 |
| 1.12.1 | 393 | 9/19/2026 |
| 1.12.0 | 96 | 9/18/2026 |
| 1.11.1 | 95 | 9/18/2026 |
| 1.11.0 | 154 | 9/17/2026 |
| 1.10.0 | 105 | 9/17/2026 |
| 1.9.0 | 112 | 9/17/2026 |
| 1.8.2 | 102 | 9/17/2026 |
| 1.8.1 | 117 | 9/16/2026 |
| 1.8.0 | 104 | 9/16/2026 |
| 1.7.1 | 100 | 9/16/2026 |
# Crestron Home NUnit v2.4.0
Adds Mac UI testing helpers to the existing CrestronHomeNUnit.TestAdapter package. The new CrestronHomeNUnit.Mac assembly provides Appium Mac2 transport, exact accessibility selectors, Home/room navigation, retained screenshot and hierarchy evidence, and binary-control testing with independent device-state verification and restoration.
Includes an explicit NUnit 5 sample for Visual Studio, VS Code and CI, a job-owned Mac host wrapper, and setup, permissions, ownership, cleanup and troubleshooting documentation. Mac tests are ordinary phase-two NUnit fixtures; document preparation and submission remain separate. Existing Android, processor and workflow APIs are unchanged.
Validation includes 42 offline Mac regressions and a fresh-package consumer, plus live Demo-outlet control and restoration and the public room sample on an Apple Silicon Mac running Crestron Home 4.12.11. The live tests ran from HPNEIL against the development MC4-R, with independent physical-state checks, retained evidence and verified automation shutdown. See the [validation record](https://github.com/oznetmaster/CrestronHomeNUnit/blob/main/docs/MacUiValidation.md) and [Mac testing guide](https://github.com/oznetmaster/CrestronHomeNUnit/blob/main/docs/MacUiTesting.md).
## Updating
Update CrestronHomeNUnit.TestAdapter to 2.4.0 to use the additional Mac APIs. Existing consumers need no API migration. Mac tests require the separately installed Crestron Home app, Appium Mac2 and an unlocked Apple Silicon Mac desktop. Driver-specific bindings and independent state checks remain in the driver's test project. No new driver/client release is needed for these additive test helpers.
Copyright (c) 2026 Neil Colvin. Licensed under the MIT License; see LICENSE.