File tree Expand file tree Collapse file tree 5 files changed +55
-43
lines changed
test/HealthChecks.Milvus.Tests Expand file tree Collapse file tree 5 files changed +55
-43
lines changed Original file line number Diff line number Diff line change 29
29
30
30
jobs :
31
31
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 102
102
<PackageVersion Include =" System.Text.Json" Version =" 8.0.5" />
103
103
<PackageVersion Include =" System.Text.RegularExpressions" Version =" 4.3.1" />
104
104
<PackageVersion Include =" System.Threading.Channels" Version =" 8.0.0" />
105
+ <PackageVersion Include =" Testcontainers.Milvus" Version =" $(TestcontainersVersion)" />
105
106
<PackageVersion Include =" Testcontainers.PostgreSql" Version =" $(TestcontainersVersion)" />
106
107
<PackageVersion Include =" TestContainers.MongoDb" Version =" $(TestcontainersVersion)" />
107
108
<PackageVersion Include =" Testcontainers.MsSql" Version =" $(TestcontainersVersion)" />
Original file line number Diff line number Diff line change 1
1
using System . Net ;
2
+ using Aspire . Milvus . Client . Tests ;
2
3
using Milvus . Client ;
3
4
4
5
namespace HealthChecks . Milvus . Tests . Functional ;
5
6
6
- public class milvus_healthcheck_should
7
+ public class milvus_healthcheck_should ( MilvusContainerFixture milvusContainerFixture ) : IClassFixture < MilvusContainerFixture >
7
8
{
8
9
[ Fact ]
9
10
public async Task be_healthy_when_milvus_is_available_using_client_factory ( )
10
11
{
12
+ string connectionString = milvusContainerFixture . GetConnectionString ( ) ;
13
+
11
14
var webHostBuilder = new WebHostBuilder ( )
12
15
. ConfigureServices ( services =>
13
16
{
14
17
services
15
18
. AddHealthChecks ( )
16
19
. AddMilvus (
17
- clientFactory : sp => new MilvusClient ( "localhost" ) , tags : new string [ ] { "milvus" } ) ;
20
+ clientFactory : sp => new MilvusClient ( new Uri ( connectionString ) ) , tags : new string [ ] { "milvus" } ) ;
18
21
} )
19
22
. Configure ( app =>
20
23
{
@@ -34,11 +37,13 @@ public async Task be_healthy_when_milvus_is_available_using_client_factory()
34
37
[ Fact ]
35
38
public async Task be_healthy_when_milvus_is_available_using_singleton ( )
36
39
{
40
+ string connectionString = milvusContainerFixture . GetConnectionString ( ) ;
41
+
37
42
var webHostBuilder = new WebHostBuilder ( )
38
43
. ConfigureServices ( services =>
39
44
{
40
45
services
41
- . AddSingleton ( new MilvusClient ( "localhost" ) )
46
+ . AddSingleton ( new MilvusClient ( new Uri ( connectionString ) ) )
42
47
. AddHealthChecks ( )
43
48
. AddMilvus ( tags : new string [ ] { "milvus" } ) ;
44
49
} )
Original file line number Diff line number Diff line change 1
1
<Project Sdk =" Microsoft.NET.Sdk" >
2
2
3
+ <ItemGroup >
4
+ <PackageReference Include =" Testcontainers.Milvus" />
5
+ </ItemGroup >
6
+
3
7
<ItemGroup >
4
8
<ProjectReference Include =" ..\..\src\HealthChecks.Milvus\HealthChecks.Milvus.csproj" />
5
9
</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