// 一个包文件夹中只能存在一个包名 或 其对应的 测试包名 // 用 main 程序做测试,一个 main 包中只能有一个名为 main 函数 // 因此一个文件夹中只能容纳一个主函数 // 一个文件夹中包含多个带有 main 函数的文件会导致IDE无法自动编译并报告语法错误 // // 测试程序 文件名形式必须为 xxx_test.go // 包名 形式必须为 xxx_test // 测试函数名形式必须为 TestXxxx(t *testing.T) 或 BenchmarkXxxx(b *testing.B) // 一个测试文件中可以容纳多个测试函数 // 一个文件夹中可以容纳多个测试文件 package client_test import ( "encoding/json" "fmt" "testing" "git.wecise.com/wecise/odb-go/odb" "git.wecise.com/wecise/odb-go/odbc" "github.com/stretchr/testify/assert" ) // 程序设置默认值 // 可通过命令行参数、环境变量、配置文件设置,详情可通过 odbc.Usage 查看 var odbconfig = &odb.Config{ Hosts: []string{"47.92.151.165:11001"}, Keyspace: "oktest", User: fmt.Sprint("测试客户端"), Pass: "********", PoolSize: 20, Debug: true, } func TestClientMQL(t *testing.T) { // 根据参数配置获取 ODBC 连接 odbclient := odbc.ODBC(odbconfig) defer func() { // 结束前关闭 ODBC 连接 odbclient.Close() }() // 执行 MQL ret, err := odbclient.Query("select signal('status') from /").Do() if !assert.Nil(t, err) { return } // 通过 odbc.Config 获取配置信息 if odbc.Config.GetBool("test.print.result", true) { // 打印 MQL 执行结果 bs, err := json.MarshalIndent(ret.Data, "", " ") if !assert.Nil(t, err) { return } // 通过 odbc.Logger 输出日志信息 odbc.Logger.Info(string(bs)) } } func TestClientCQL(t *testing.T) { // 根据参数配置获取 ODBC 连接 odbclient := odbc.ODBC(odbconfig) defer func() { // 结束前关闭 ODBC 连接 odbclient.Close() }() // 执行 CQL ret, err := odbclient.QueryCql("select listen_address, schema_version from system.local").Do() if !assert.Nil(t, err) { return } // 通过 odbc.Config 获取配置信息 if odbc.Config.GetBool("test.print.result", true) { // 打印 CQL 执行结果 bs, err := json.MarshalIndent(ret.Data, "", " ") if !assert.Nil(t, err) { return } // 通过 odbc.Logger 输出日志信息 odbc.Logger.Info(string(bs)) } } func TestClientSearch(t *testing.T) { // 根据参数配置获取 ODBC 连接 odbclient := odbc.ODBC(odbconfig) defer func() { // 结束前关闭 ODBC 连接 odbclient.Close() }() // 执行 Search ret, err := odbclient.Search("#/matrix/group").Do() if !assert.Nil(t, err) { return } // 通过 odbc.Config 获取配置信息 if odbc.Config.GetBool("test.print.result", true) { // 打印 Search 执行结果 bs, err := json.MarshalIndent(ret.Data, "", " ") if !assert.Nil(t, err) { return } // 通过 odbc.Logger 输出日志信息 odbc.Logger.Info(string(bs)) } }