milvus/tests/integration
xige-16 af42d7c2af
Fix crash when insert duplicate field datas (#24559)
Signed-off-by: xige-16 <xi.ge@zilliz.com>
2023-05-31 20:32:31 +08:00
..
bulkinsert Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
getvector Forbid to get quantized vector from ChunkManager (#24334) 2023-05-24 23:03:27 +08:00
hellomilvus Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
indexstat Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
insert Fix crash when insert duplicate field datas (#24559) 2023-05-31 20:32:31 +08:00
jsonexpr Support single quotes with string (#24386) 2023-05-25 15:47:26 +08:00
rangesearch Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
refreshconfig Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
upsert Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
meta_watcher_test.go Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
meta_watcher.go Fix integration tests logic (#24063) 2023-05-15 14:45:21 +08:00
minicluster_test.go Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
minicluster.go Fix data race in minicluster for nodes add&get (#24336) 2023-05-23 21:09:28 +08:00
OWNERS Trigger main workflow when integration test changed (#24020) 2023-05-11 09:51:19 +08:00
querynodev2_test.go Fix integration test not wait for index built (#24037) 2023-05-12 09:51:25 +08:00
README.md Add README for integration test (#24441) 2023-05-26 15:55:27 +08:00
suite.go Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
util_index.go Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
util_insert.go Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
util_query.go Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +08:00
util_schema.go Seperate integration test package to resolve interference between cases (#24331) 2023-05-23 17:51:25 +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.