milvus/tests/integration
wei liu f190e5d802
fix: [skip e2e] TestNodeDownOnSingleReplica has unstable result (#37288)
issue: #37289
those test case use search to verify replica's status, but if the search
gap is 1s, the node down's effect may be fixed up by balance.

This PR remove the 1 second gap between search operation.

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2024-11-01 10:50:21 +08:00
..
alias enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
balance feat: Support stats task to sort segment by PK (#35054) 2024-09-02 14:19:03 +08:00
bloomfilter enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
channel_balance feat: Support stats task to sort segment by PK (#35054) 2024-09-02 14:19:03 +08:00
compaction fix: Fix conan gdal building problem (#37338) 2024-10-31 21:04:16 +08:00
coorddownsearch fix: port listen racing in mix or standalone mode (#36442) 2024-09-26 21:23:16 +08:00
coordrecovery fix: port listen racing in mix or standalone mode (#36442) 2024-09-26 21:23:16 +08:00
crossclusterrouting feat: Support stats task to sort segment by PK (#35054) 2024-09-02 14:19:03 +08:00
datanode fix: port listen racing in mix or standalone mode (#36442) 2024-09-26 21:23:16 +08:00
expression enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
getvector enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
hellomilvus enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
httpserver enhance: support httpv1/v2 throttle and add it for httpV2(#35350) (#35470) 2024-08-20 16:16:55 +08:00
hybridsearch fix: empty result when having only one subReq(#36098) (#36128) 2024-09-10 14:25:07 +08:00
import fix: Fix conan gdal building problem (#37338) 2024-10-31 21:04:16 +08:00
indexstat enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
insert enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
jsonexpr enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
levelzero fix: [skip e2e]unstable l0 it (#35612) 2024-08-26 18:53:04 +08:00
materialized_view enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
null_data fix: not append valid data when transfer to insert record (#36027) 2024-09-06 14:53:04 +08:00
ops enhance: Mark query node as read only after suspend (#35492) 2024-08-20 14:02:54 +08:00
partialsearch enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
partitionkey enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
querynode enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
rangesearch enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
ratelimit feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
rbac enhance: Enable dynamic update loaded collection's replica (#35822) 2024-09-25 10:13:18 +08:00
refreshconfig enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
replicas fix: [skip e2e] TestNodeDownOnSingleReplica has unstable result (#37288) 2024-11-01 10:50:21 +08:00
rg enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
rollingupgrade enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
sealpolicies enhance: Add depguard rules to ban deprecated proto lib (#35140) 2024-08-01 10:01:49 +08:00
sparse enhance: Allow empty sparse row (#34700) 2024-08-16 14:14:54 +08:00
streaming feat: Support stats task to sort segment by PK (#35054) 2024-09-02 14:19:03 +08:00
target fix: port listen racing in mix or standalone mode (#36442) 2024-09-26 21:23:16 +08:00
upsert fix: upsert result use the previous pk (#34672) 2024-07-31 15:25:51 +08:00
meta_watcher_test.go enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
meta_watcher.go enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
minicluster_v2.go feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
OWNERS Trigger main workflow when integration test changed (#24020) 2023-05-11 09:51:19 +08:00
querynodev2_test.go fix: Repair integration test framework (#28308) 2023-11-24 10:26:23 +08:00
README.md enhance: use docker compose instead of docker-compose (#35208) 2024-08-02 19:32:32 +08:00
suite.go fix: Fix collection leak in querynode (#37061) 2024-10-25 19:59:29 +08:00
util_collection.go enhance: Update protobuf-go to protobuf-go v2 (#34394) 2024-07-29 11:31:51 +08:00
util_index.go enhance: add an unify vector index config checker (#36844) 2024-10-28 10:11:37 +08:00
util_insert.go fix: Fix conan gdal building problem (#37338) 2024-10-31 21:04:16 +08:00
util_query.go fix: Fix collection leak in querynode (#37061) 2024-10-25 19:59:29 +08:00
util_schema.go fix: Fix conan gdal building problem (#37338) 2024-10-31 21:04:16 +08:00

Integration test

This folder contains the integration test for Milvus components.

How to run integration test locally

Integration test still need some thirdparty components to start:

cd [milvus-folder]/deployments/docker/dev && docker compose up -d

Run following script to start the full integration test:

cd [milvus-folder]
make milvus # milvus needs to be compiled to make cpp build ready
./scripts/run_intergration_test.sh

If you want to run single test case, you could execute command like this example

# mq, etcd, minio ready before
cd [milvus-folder]
source scripts/setenv.sh
cd tests/integration/[testcase-folder]/
go test -run "$testCaseName^" -testify.m "$subTestifyCaseName^" -race -v

Using suite

MiniClusterandMiniClusterSuite` provides lots of comment preset tool function to execute intergration test.

It is recommend to add a new test with testify/suite


import (
    // ...
    "github.com/milvus-io/milvus/tests/integration"
)

type NewSuite struct {
    integration.MiniClusterSuite
}


// Setups and teardowns, optional if no custom logic needed
// example to suite setup & teardown, same logic applies to test setup&teardown

func (s *NewSuite) SetupSuite() {
    s.MiniClusterSuite.SetupSuite()
    // customized setup
}

func (s *NewSuite) TearDownSuite() {
    s.MiniClusterSuite.TearDownSuite()
    // customized teardown
}

New folder for each new scenario

It's a known issue that integration test cases run in same process might affect due to some singleton component not fully cleaned.

As a temp solution, test cases are separated into different packages to run independently.