Move subscribe/unsubscribe I/O outside lock(Lock) in SyncAddressSpace to avoid blocking all OPC UA operations during rebuilds. Replace blocking ReadAsync calls for alarm priority/description in dispatch loop with cached subscription values. Extract IHistorianConnectionFactory so EnsureConnected can be tested without the SDK runtime — adds 5 connection lifecycle tests (failure, timeout, reconnect, state resilience, dispose-after-failure). All stability review findings and test coverage gaps are now fully resolved. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
54 lines
2.3 KiB
XML
54 lines
2.3 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net48</TargetFramework>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
<LangVersion>9.0</LangVersion>
|
|
<Nullable>enable</Nullable>
|
|
<IsPackable>false</IsPackable>
|
|
<IsTestProject>true</IsTestProject>
|
|
<RootNamespace>ZB.MOM.WW.LmxOpcUa.Tests</RootNamespace>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0"/>
|
|
<PackageReference Include="xunit" Version="2.9.3"/>
|
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
|
|
<PrivateAssets>all</PrivateAssets>
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="Shouldly" Version="4.2.1"/>
|
|
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.1"/>
|
|
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0"/>
|
|
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="6.0.0"/>
|
|
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Server" Version="1.5.374.126"/>
|
|
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Client" Version="1.5.374.126"/>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\src\ZB.MOM.WW.LmxOpcUa.Host\ZB.MOM.WW.LmxOpcUa.Host.csproj"/>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Reference Include="ArchestrA.MxAccess">
|
|
<HintPath>..\..\lib\ArchestrA.MxAccess.dll</HintPath>
|
|
<EmbedInteropTypes>false</EmbedInteropTypes>
|
|
</Reference>
|
|
<Reference Include="aahClientManaged">
|
|
<HintPath>..\..\lib\aahClientManaged.dll</HintPath>
|
|
<EmbedInteropTypes>false</EmbedInteropTypes>
|
|
</Reference>
|
|
<Reference Include="aahClientCommon">
|
|
<HintPath>..\..\lib\aahClientCommon.dll</HintPath>
|
|
<EmbedInteropTypes>false</EmbedInteropTypes>
|
|
</Reference>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="..\..\src\ZB.MOM.WW.LmxOpcUa.Host\appsettings.json" Link="appsettings.json">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
</ItemGroup>
|
|
|
|
</Project>
|