Connector/J 源代码存储库或随源代码一起提供的软件包包含一个广泛的测试套件,其中包含可以独立执行的测试用例。这些测试用例分为以下类别:
单元测试: 它们是位于与它们测试的类对齐的包中的方法。
功能测试: 来自包
testsuite.simple
的类。包含 Connector/J 主要功能的测试代码。性能测试: 来自包
testsuite.perf
的类。包含用于测量 Connector/J 性能的测试代码。回归测试: 来自包
testsuite.regression
的类。包含用于测试错误和回归修复的代码。X DevAPI 和 X 协议测试: 来自包
testsuite.x
的类,用于测试 X DevAPI 和 X 协议功能。
捆绑的 Ant 构建文件包含诸如 test
之类的目标,可以帮助运行 Connector/J 测试;有关详细信息,请参阅构建文件中的目标描述。要运行测试,除了满足 第 4.3 节,“从源代码安装” 中描述的要求之外,您还必须在 build.properties
文件中或通过 Ant -D
选项设置以下属性:
com.mysql.cj.testsuite.jvm
:用于测试的 JVM。如果未设置此属性,将使用com.mysql.cj.build.jdk
提供的 JVM。com.mysql.cj.testsuite.url
:指定用于连接到 MySQL 测试服务器的 JDBC URL;请参阅 第 6.2 节,“连接 URL 语法”。com.mysql.cj.testsuite.url.openssl
:(仅限于 8.0.26 及更早版本) 指定用于连接到使用 OpenSSL 编译的 MySQL 测试服务器的 JDBC URL;请参阅 第 6.2 节,“连接 URL 语法”。com.mysql.cj.testsuite.mysqlx.url
:指定用于连接到 MySQL 测试服务器的 X DevAPI URL;请参阅 第 6.2 节,“连接 URL 语法”。com.mysql.cj.testsuite.mysqlx.url.openssl
:(仅限于 8.0.26 及更早版本) 指定用于连接到使用 OpenSSL 编译的 MySQL 测试服务器的 X DevAPI URL;请参阅 第 6.2 节,“连接 URL 语法”。
设置完这些参数后,可以使用以下方法通过 Ant 运行测试:
-
使用
ant test
构建test
目标默认情况下会在一台服务器实例上运行所有测试用例。如果您想运行特定测试用例,请将测试的完全限定类名放在com.mysql.cj.testsuite.test.class
变量中;例如:shell > ant -Dcom.mysql.cj.testsuite.test.class=testsuite.simple.StringUtilsTest test
您也可以通过在
com.mysql.cj.testsuite.test.methods
变量中指定对应方法的名称(用逗号分隔多个方法)来运行测试用例中的单个测试;例如:shell > ant -Dcom.mysql.cj.testsuite.test.class=testsuite.simple.StringUtilsTest \ -Dcom.mysql.cj.testsuite.test.methods=testIndexOfIgnoreCase,testGetBytes test
虽然测试结果会部分由控制台报告,但会提供 HTML 和 XML 格式的完整报告。通过打开 buildtest/junit/report/index.html
查看 HTML 报告。报告的 XML 版本位于 buildtest/junit
文件夹中。
从 Connector/J 5.1 迁移到 8.0 及更高版本后,用于测试 Connector/J 的许多 Ant 属性已重命名或删除;有关详细信息,请参阅 第 4.4.1.5 节,“测试属性的更改”。