28.1.2 MySQL 测试套件

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

您也可以编写自己的测试用例。有关包括系统要求在内的信息,请参见https://dev.mysql.com/doc/index-other.html处的 MySQL Server Doxygen 文档中的 MySQL 测试框架。

当前的测试用例集并不能测试 MySQL 中的所有内容,但是它应该捕获 SQL 处理代码,os 或库问题中最明显的错误,并且在测试复制方面非常彻底。我们的目标是使测试覆盖 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 中存在错误)。参见第 1.7 节“如何报告错误或问题”

如果一项测试失败,则应使用--force选项运行 mysql-test-run.pl ,以检查是否有其他测试失败。

如果您要在其中运行测试套件的计算机上运行着mysqld的副本,则不必停止它,只要它不使用端口93069307即可。如果使用了这些端口中的任何一个,则应将MTR_BUILD_THREAD环境变量设置为适当的值,并且测试套件将对主端口,从端口和 NDB 使用不同的端口集。例如:

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

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

如果您对测试套件有疑问,或者需要测试用例,请加入MySQL 社区松弛