使用相对于项目地址的配置文件路径以便于单元测试

This commit is contained in:
2023-11-30 03:16:33 +08:00
parent 60096f33a1
commit e3174a125c
6 changed files with 44 additions and 12 deletions

View File

@@ -1,21 +1,25 @@
package models
import (
"fmt"
"log"
"os"
"path/filepath"
"runtime"
"github.com/spf13/viper"
)
var Viper *viper.Viper
var (
_, b, _, _ = runtime.Caller(0)
Root = filepath.Join(filepath.Dir(b), "..")
Viper *viper.Viper
)
func init() {
//如果命令行参数中有test则使用测试环境的配置
var config_file string = "./data/config.yaml"
if len(os.Args) > 1 && os.Args[1] == "test" {
log.Println("使用测试环境配置")
config_file = "./data/config_test.yaml"
}
config_file := filepath.Join(Root, "data", "config.yaml")
fmt.Println(config_file)
viper.SetConfigFile(config_file)
if err := viper.ReadInConfig(); err != nil {
log.Println("读取配置文件失败", err)

View File

@@ -29,6 +29,10 @@ func elasticsearch_init() (es *elasticsearch.Client) {
return es
}
type SearchData struct {
Total int64 `json:"total"`
}
func ElasticsearchSearch(text string) map[string]interface{} {
var (
r map[string]interface{}

View File

@@ -0,0 +1,16 @@
package models
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestMyFunction(t *testing.T) {
// 创建一个测试用例
expected := 10
actual := ElasticsearchSearch("豌豆")
// 使用 assert 包中的函数来验证函数的输出
assert.Equal(t, expected, actual)
}