This is a golang implementation of MySQL Test Framework.
- All the tests should be put in
t, take t/example.test as an example. - All the expected test results should be put in
r. Result file has the same file name with the corresponding test file, but with a.resultfile suffix, take r/example.result as an examle.
-
Start up a local TiDB cluster with TiUP
tiup playground --without-monitor \ --db.binpath /path/to/tidb-server \ --db.config /path/to/tidb-server/config.toml \ --kv.binpath /path/to/tikv-server \ --tiflash.binpath /path/to/tiflash -
Build the
mysql-testerbinarymake build
-
Run the test cases in
tdirectorymake run-vector-test
-
Update the test case
Update the test case in
tdirectory, and run the following command to update the expected result inrdirectory.make update-vector-test
Basic usage:
Usage of ./mysql-tester:
-all
run all tests
-host string
The host of the TiDB/MySQL server. (default "127.0.0.1")
-log-level string
The log level of mysql-tester: info, warn, error, debug. (default "error")
-params string
Additional params pass as DSN(e.g. session variable)
-passwd string
The password for the user.
-port string
The listen port of TiDB/MySQL server. (default "4000")
-record
Whether to record the test output to the result file.
-reserve-schema
Reserve schema after each test
-retry-connection-count int
The max number to retry to connect to the database. (default 120)
-user string
The user for connecting to the database. (default "root")
-xunitfile string
The xml file path to record testing results.
By default, it connects to the TiDB/MySQL server at 127.0.0.1:4000 with root and no passward:
./mysql-tester # run all the tests
./mysql-tester example # run a specified test
./mysql-tester example1 example2 example3 # seperate different tests with one or more spacesFor more details about how to run and write test cases, see the Wiki page.
Contributions are welcomed and greatly appreciated. You can help by:
- writing user document about how to use this framework
- triaging issues
- submitting new test cases
- fixing bugs of this test framework
- adding features that mysql test has but this implementation does not
- ...
In case you have any problem, discuss with us in the tidbcommunity slack workspace.
See CONTRIBUTING.md for details.
MySQL Tester is under the Apache 2.0 license. See the LICENSE file for details.