3.3.5 测试连接器/J

Connector/J 源代码存储库或随源代码一起提供的包包括一个广泛的测试套件,其中包含可以独立执行的测试用例。测试用例分为以下几类:

  • 单元测试:它们是位于包中的方法,与它们测试的类保持一致。

  • 功能测试:包中的类testsuite.simple。包括 Connector/J 主要功能的测试代码。

  • 性能测试:包中的类testsuite.perf。包括测试代码以测量 Connector/J 的性能。

  • 回归测试:包中的类testsuite.regression。包括用于测试错误和回归修复的代码。

  • X DevAPI 和 X 协议测试:testsuite.x用于测试 X DevAPI 和 X 协议功能 的包

捆绑的 Ant 构建文件包含诸如 之类的目标 test,可以促进运行 Connector/J 测试的过程;有关详细信息,请参阅构建文件中的目标描述。要运行测试,除了满足 第 3.3.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;参见 第 3.5.2 节,“连接 URL 语法”

  • com.mysql.cj.testsuite.url.openssl:(仅适用于 8.0.26 及更早版本)它指定用于连接到使用 OpenSSL 编译的 MySQL 测试服务器的 JDBC URL;参见 第 3.5.2 节,“连接 URL 语法”

  • com.mysql.cj.testsuite.mysqlx.url:它指定用于连接到 MySQL 测试服务器的 X DevAPI URL;参见 第 3.5.2 节,“连接 URL 语法”

  • com.mysql.cj.testsuite.mysqlx.url.openssl:(仅适用于 8.0.26 及更早版本)它指定 X DevAPI URL 以连接到使用 OpenSSL 编译的 MySQL 测试服务器;参见 第 3.5.2 节,“连接 URL 语法”

设置好这些参数后,按以下方式使用 Ant 运行测试:

  • 构建test目标 ant 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 格式的完整报告。通过打开查看 HTML 报告 buildtest/junit/report/index.html。XML 版本的报告位于文件夹中 buildtest/junit

笔记

从 Connector/J 5.1 到 8.0,许多用于测试 Connector/J 的 Ant 属性已被重命名或删除;有关详细信息,请参阅第 3.3.4.1.5 节,“更改测试属性”