Fixture-dependent suites fail instead of skipping when their simulator/profile is absent #594

Closed
opened 2026-10-08 02:31:09 -04:00 by dohertj2 · 1 comment
Owner

Four OpcUaClient.Browser tests are bare [Fact]s that dial opc-plc with no reachability gate, so they go red whenever the fixture is down (three live in a unit *.Tests project). OpcPlcFixture.SkipReason in OpcUaClient.IntegrationTests already does this right. Separately, the AbCip smoke matrix crosses every compose profile when AB_SERVER_COMPOSE_PROFILE is unset, but only one profile can bind :44818 at a time, so the other families' rows fail rather than skip. Every full-suite run currently reports these as failures, hiding real ones.
Sources: tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser.Tests/OpcUaClientBrowseSessionTests.cs:40,52,67; ...Browser.IntegrationTests/BrowseRoundTripTests.cs:16; ...AbCip.IntegrationTests/TransportMatrix.cs:21-31, AbCipReadSmokeTests.cs:21.

  • Gate the Browser tests on the shared opc-plc reachability probe; move the live ones out of the unit project
  • AbCip matrix: detect the running profile (or skip non-matching rows) when the env var is unset

Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep.

Four OpcUaClient.Browser tests are bare `[Fact]`s that dial opc-plc with no reachability gate, so they go red whenever the fixture is down (three live in a unit `*.Tests` project). `OpcPlcFixture.SkipReason` in OpcUaClient.IntegrationTests already does this right. Separately, the AbCip smoke matrix crosses every compose profile when `AB_SERVER_COMPOSE_PROFILE` is unset, but only one profile can bind :44818 at a time, so the other families' rows fail rather than skip. Every full-suite run currently reports these as failures, hiding real ones. Sources: tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser.Tests/OpcUaClientBrowseSessionTests.cs:40,52,67; ...Browser.IntegrationTests/BrowseRoundTripTests.cs:16; ...AbCip.IntegrationTests/TransportMatrix.cs:21-31, AbCipReadSmokeTests.cs:21. - [ ] Gate the Browser tests on the shared opc-plc reachability probe; move the live ones out of the unit project - [ ] AbCip matrix: detect the running profile (or skip non-matching rows) when the env var is unset _Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep._
dohertj2 added the driver/opcuaclientdriver/abcip labels 2026-10-08 02:31:09 -04:00
Author
Owner

Resolved on master (merge 6a5e804e).

  • Browser tests: the live ones moved out of the unit project into Driver.OpcUaClient.Browser.IntegrationTests and call OpcPlcProbe.SkipUnlessReachable() first, so they report Skipped when opc-plc is down (7e91c37a). Verified live against opc-plc: Browser.IntegrationTests 4/4.
  • AbCip matrix: TransportMatrix now defaults to a single profile when AB_SERVER_COMPOSE_PROFILE is unset instead of crossing every profile (b37e9613); fixture docs updated (7e368425).
  • Full suite on 5a5f9b22: 49 projects, 0 failed.

Closed 2026-10-08 by the hardware-available issue sweep (master d898262c).

Resolved on master (merge 6a5e804e). - [x] Browser tests: the live ones moved out of the unit project into `Driver.OpcUaClient.Browser.IntegrationTests` and call `OpcPlcProbe.SkipUnlessReachable()` first, so they report Skipped when opc-plc is down (7e91c37a). Verified live against opc-plc: Browser.IntegrationTests 4/4. - [x] AbCip matrix: `TransportMatrix` now defaults to a single profile when `AB_SERVER_COMPOSE_PROFILE` is unset instead of crossing every profile (b37e9613); fixture docs updated (7e368425). - Full suite on 5a5f9b22: 49 projects, 0 failed. *Closed 2026-10-08 by the hardware-available issue sweep (master d898262c).*
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#594