扩展 MySQL 5.6  /  第 3 章 MySQL 测试套件

第 3 章 MySQL 测试套件

Unix 源代码和二进制发行版中包含的测试系统使用户和开发人员可以对 MySQL 代码执行回归测试。这些测试可以在 Unix 上运行。

您也可以编写自己的测试用例。有关包括系统要求在内的信息,请参阅 MySQL Server Doxygen 文档中的 MySQL 测试框架,该文档位于 https://mysql.net.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 中存在错误,请报告问题。请参阅 如何报告错误或问题

如果一个测试失败,您应该运行 mysql-test-run.pl--force选择检查是否有任何其他测试失败。

如果你有一个mysqld的副本在你想要运行测试套件的机器上运行,你不必停止它,只要它不使用端口93069307. 如果这些端口中的任何一个被占用,您应该将MTR_BUILD_THREAD环境变量设置为适当的值,并且测试套件将为源、副本和导航台使用一组不同的端口。例如:

$> export MTR_BUILD_THREAD=31
$> ./mysql-test-run.pl [options] [test_name]

在该目录中,您可以使用./mysql-test-run.pl mysql-test运行单个测试用例。 test_name

如果您对测试套件有疑问,或者有测试用例要贡献,请加入 MySQL Community Slack