Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wangxiangustc/tidb-lite
Using tidb-lite to create a TiDB server with mocktikv mode in your application or unit test.
https://github.com/wangxiangustc/tidb-lite
golang mysql tidb unit-test
Last synced: 3 months ago
JSON representation
Using tidb-lite to create a TiDB server with mocktikv mode in your application or unit test.
- Host: GitHub
- URL: https://github.com/wangxiangustc/tidb-lite
- Owner: WangXiangUSTC
- License: apache-2.0
- Created: 2019-06-30T04:08:46.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-01-14T10:20:17.000Z (about 3 years ago)
- Last Synced: 2024-06-18T23:12:27.610Z (7 months ago)
- Topics: golang, mysql, tidb, unit-test
- Language: Go
- Homepage:
- Size: 109 KB
- Stars: 54
- Watchers: 3
- Forks: 17
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tidb-lite ![test](https://github.com/WangXiangUSTC/tidb-lite/workflows/test/badge.svg)
[English README](./README_EN.md)
tidb-lite 是一个库,可以方便地使用该库在 golang 应用或者单元测试中创建 `mocktikv` 模式的 TiDB。
## 提供的接口
- func NewTiDBServer(options *Options) (*TiDBServer, error)
创建一个 TiDB Server,使用 options 来设置 TiDB 存储数据的路径和服务的端口号。- func GetTiDBServer() (*TiDBServer, error)
获取已经创建的 TiDB Server。
- func (t *TiDBServer) CreateConn() (*sql.DB, error)
获取一个 TiDB 的链接。- func (t *TiDBServer) Close()
关闭 TiDB 服务。- func (t *TiDBServer) CloseGracefully()
优雅地关闭 TiDB 服务。## 使用示例
可以通过 `example` 路径下的示例代码了解 tidb-lite 的使用方法。
在 [example.go](./example/example.go) 中定义了一个函数 `GetRowCount` 计算指定表中符合条件的数据的行数。
在 [example_test.go](./example/example_test.go) 中使用以下代码创建 TiDB Server 并获取数据库链接:```
tidbServer, err := tidblite.NewTiDBServer(tidblite.NewOptions(c.MkDir()))
c.Assert(err, IsNil)
defer tidbServer.Close()dbConn, err := tidbServer.CreateConn()
c.Assert(err, IsNil)
```然后就可以使用链接 `dbConn` 生成测试数据,对函数 `GetRowCount` 进行测试。
## 注意
tidb-lite 只允许同一时刻运行一个 TiDB 实例,需要保证已经创建的 TiDB 实例 close 后再创建新的实例。