File tree Expand file tree Collapse file tree
test/HealthChecks.Milvus.Tests Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2929
3030jobs :
3131 build :
32- runs-on : ubuntu-latest
33- steps :
34- - uses : actions/checkout@v3
35- - name : ' wget'
36- run : ' wget https://github.com/milvus-io/milvus/releases/download/v2.4.6/milvus-standalone-docker-compose.yml -O docker-compose.yml'
37- - name : ' compose'
38- run : ' sudo docker compose up -d'
39- - name : Setup .NET
40- uses : actions/setup-dotnet@v4
41- with :
42- dotnet-version : |
43- 8.0.x
44- 9.0.x
45- - name : Restore
46- run : |
47- dotnet restore ./src/HealthChecks.Milvus/HealthChecks.Milvus.csproj &&
48- dotnet restore ./test/HealthChecks.Milvus.Tests/HealthChecks.Milvus.Tests.csproj
49- - name : Check formatting
50- run : |
51- dotnet format --no-restore --verify-no-changes --severity warn ./src/HealthChecks.Milvus/HealthChecks.Milvus.csproj || (echo "Run 'dotnet format' to fix issues" && exit 1) &&
52- dotnet format --no-restore --verify-no-changes --severity warn ./test/HealthChecks.Milvus.Tests/HealthChecks.Milvus.Tests.csproj || (echo "Run 'dotnet format' to fix issues" && exit 1)
53- - name : Build
54- run : |
55- dotnet build --no-restore ./src/HealthChecks.Milvus/HealthChecks.Milvus.csproj &&
56- dotnet build --no-restore ./test/HealthChecks.Milvus.Tests/HealthChecks.Milvus.Tests.csproj
57- - name : Test
58- run : >
59- dotnet test
60- ./test/HealthChecks.Milvus.Tests/HealthChecks.Milvus.Tests.csproj
61- --no-restore
62- --no-build
63- --collect "XPlat Code Coverage"
64- --results-directory .coverage
65- --
66- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=opencover
67- - name : Upload Coverage
68- uses : codecov/codecov-action@v5
69- with :
70- flags : Milvus
71- directory : .coverage
32+ uses : ./.github/workflows/reusable_ci_workflow.yml
33+ with :
34+ PROJECT_PATH : ./src/HealthChecks.Milvus/HealthChecks.Milvus.csproj
35+ TEST_PROJECT_PATH : ./test/HealthChecks.Milvus.Tests/HealthChecks.Milvus.Tests.csproj
36+ CODECOV_FLAGS : Milvus
Original file line number Diff line number Diff line change 102102 <PackageVersion Include =" System.Text.Json" Version =" 8.0.5" />
103103 <PackageVersion Include =" System.Text.RegularExpressions" Version =" 4.3.1" />
104104 <PackageVersion Include =" System.Threading.Channels" Version =" 8.0.0" />
105+ <PackageVersion Include =" Testcontainers.Milvus" Version =" $(TestcontainersVersion)" />
105106 <PackageVersion Include =" Testcontainers.PostgreSql" Version =" $(TestcontainersVersion)" />
106107 <PackageVersion Include =" TestContainers.MongoDb" Version =" $(TestcontainersVersion)" />
107108 <PackageVersion Include =" Testcontainers.MsSql" Version =" $(TestcontainersVersion)" />
Original file line number Diff line number Diff line change 11using System . Net ;
2+ using Aspire . Milvus . Client . Tests ;
23using Milvus . Client ;
34
45namespace HealthChecks . Milvus . Tests . Functional ;
56
6- public class milvus_healthcheck_should
7+ public class milvus_healthcheck_should ( MilvusContainerFixture milvusContainerFixture ) : IClassFixture < MilvusContainerFixture >
78{
89 [ Fact ]
910 public async Task be_healthy_when_milvus_is_available_using_client_factory ( )
1011 {
12+ string connectionString = milvusContainerFixture . GetConnectionString ( ) ;
13+
1114 var webHostBuilder = new WebHostBuilder ( )
1215 . ConfigureServices ( services =>
1316 {
1417 services
1518 . AddHealthChecks ( )
1619 . AddMilvus (
17- clientFactory : sp => new MilvusClient ( "localhost" ) , tags : new string [ ] { "milvus" } ) ;
20+ clientFactory : sp => new MilvusClient ( new Uri ( connectionString ) ) , tags : new string [ ] { "milvus" } ) ;
1821 } )
1922 . Configure ( app =>
2023 {
@@ -34,11 +37,13 @@ public async Task be_healthy_when_milvus_is_available_using_client_factory()
3437 [ Fact ]
3538 public async Task be_healthy_when_milvus_is_available_using_singleton ( )
3639 {
40+ string connectionString = milvusContainerFixture . GetConnectionString ( ) ;
41+
3742 var webHostBuilder = new WebHostBuilder ( )
3843 . ConfigureServices ( services =>
3944 {
4045 services
41- . AddSingleton ( new MilvusClient ( "localhost" ) )
46+ . AddSingleton ( new MilvusClient ( new Uri ( connectionString ) ) )
4247 . AddHealthChecks ( )
4348 . AddMilvus ( tags : new string [ ] { "milvus" } ) ;
4449 } )
Original file line number Diff line number Diff line change 11<Project Sdk =" Microsoft.NET.Sdk" >
22
3+ <ItemGroup >
4+ <PackageReference Include =" Testcontainers.Milvus" />
5+ </ItemGroup >
6+
37 <ItemGroup >
48 <ProjectReference Include =" ..\..\src\HealthChecks.Milvus\HealthChecks.Milvus.csproj" />
59 </ItemGroup >
Original file line number Diff line number Diff line change 1+ using Testcontainers . Milvus ;
2+
3+ namespace Aspire . Milvus . Client . Tests ;
4+
5+ public sealed class MilvusContainerFixture : IAsyncLifetime
6+ {
7+ public const string Registry = "docker.io" ;
8+
9+ public const string Image = "milvusdb/milvus" ;
10+
11+ public const string Tag = "v2.4.13" ;
12+
13+ public MilvusContainer ? Container { get ; private set ; }
14+
15+ public string GetConnectionString ( ) => Container ? . GetEndpoint ( ) . AbsoluteUri ??
16+ throw new InvalidOperationException ( "The test container was not initialized." ) ;
17+
18+ public async Task InitializeAsync ( ) => Container = await CreateContainerAsync ( ) ;
19+
20+ public async Task DisposeAsync ( )
21+ {
22+ if ( Container is not null )
23+ {
24+ await Container . DisposeAsync ( ) ;
25+ }
26+ }
27+
28+ public static async Task < MilvusContainer > CreateContainerAsync ( )
29+ {
30+ var container = new MilvusBuilder ( )
31+ . WithImage ( $ "{ Registry } /{ Image } :{ Tag } ")
32+ . Build ( ) ;
33+ await container . StartAsync ( ) ;
34+
35+ return container ;
36+ }
37+ }
You can’t perform that action at this time.
0 commit comments