25 lines
993 B
Markdown
25 lines
993 B
Markdown
|
|
# 测试报告: `config` 模块
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
`config` 模块提供了一种灵活的方式,可以从文件(JSON/YAML)加载配置,并使用环境变量进行覆盖。
|
|||
|
|
|
|||
|
|
## 测试场景
|
|||
|
|
- **复杂结构映射**: 验证嵌套结构、映射 (Map)、指针以及 `Duration` 类型。
|
|||
|
|
- **环境变量覆盖**: 确保配置能被环境变量正确覆盖,包括深层嵌套的映射。
|
|||
|
|
- **回归测试**:
|
|||
|
|
- `TestForMap_Regression`: 验证基础的基于 Map 的配置加载。
|
|||
|
|
- `TestForStruct_Regression`: 验证基于结构体的映射及环境变量覆盖。
|
|||
|
|
- `TestForYml_Regression`: 检查 YAML 配置解析,包括接口切片和映射。
|
|||
|
|
|
|||
|
|
## 基准测试结果
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
goos: darwin
|
|||
|
|
goarch: amd64
|
|||
|
|
pkg: apigo.cc/go/config
|
|||
|
|
BenchmarkLoadConfig-16 9104 123326 ns/op 5136 B/op 104 allocs/op
|
|||
|
|
BenchmarkApplyEnvOverrides-16 260586 4700 ns/op 2657 B/op 64 allocs/op
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
*注:基准测试反映了在 Intel i9-9980HK 上的性能表现。*
|