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的副本在你想要运行测试套件的机器上运行,你不必停止它,只要它不使用端口9306
或9307
. 如果这些端口中的任何一个被占用,您应该将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。