包含在 Unix 源代码和二进制发行版中的测试系统使用户和开发人员能够对 MySQL 代码执行回归测试。这些测试可以在 Unix 上运行。
您也可以编写自己的测试用例。有关信息(包括系统要求),请参阅 MySQL 服务器 Doxygen 文档中的 MySQL 测试框架,可在 https://dev.mysqlserver.cn/doc/index-other.html 获取。
当前的测试用例集并未测试 MySQL 中的所有内容,但它应该可以捕获 SQL 处理代码中的大多数明显错误,操作系统或库问题,并且在测试复制方面非常彻底。我们的目标是让测试覆盖 100% 的代码。我们欢迎对测试套件的贡献。您可能尤其想贡献测试来检查对您的系统至关重要的功能,因为这可以确保所有未来的 MySQL 版本都能与您的应用程序正常配合使用。
测试系统由测试语言解释器 (mysqltest)、用于运行所有测试的 Perl 脚本 (mysql-test-run.pl)、用特殊测试语言编写的实际测试用例及其预期结果组成。要在构建后在您的系统上运行测试套件,请从源代码根目录键入 make test,或更改位置到 mysql-test
目录并键入 ./mysql-test-run.pl。如果您已安装二进制发行版,请更改位置到安装根目录下的 mysql-test
目录(例如 /usr/local/mysql/mysql-test
),并运行 ./mysql-test-run.pl。所有测试都应成功。如果任何测试失败,请随时尝试找出原因,如果它表明 MySQL 中存在错误,请报告该问题。见 如何报告错误或问题.
如果一个测试失败,您应该使用 --force
选项运行 mysql-test-run.pl 以检查是否还有其他测试失败。
如果您在要运行测试套件的机器上有一个 mysqld 正在运行,则不必停止它,只要它没有使用端口 9306
或 9307
即可。如果这两个端口中的任何一个被占用,您应该将 MTR_BUILD_THREAD
环境变量设置为适当的值,测试套件将使用另一组端口来表示源、副本和 NDB)。例如
$> export MTR_BUILD_THREAD=31
$> ./mysql-test-run.pl [options] [test_name]
在 mysql-test
目录中,您可以使用 ./mysql-test-run.pl test_name
运行单个测试用例。
如果您对测试套件有任何疑问,或有任何要贡献的测试用例,请加入 MySQL 社区 Slack.