utPLSQL:一个 Oracle PL/SQL 单元测试框架
作者: 不剪发的Tony老师
毕业于北京航空航天大学,十多年数据库管理与开发经验,目前在一家全球性的金融公司从事数据库架构设计。CSDN学院签约讲师以及GitChat专栏作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net
文章目录
utPLSQL 简介
下载安装
相关资源
utPLSQL 简介
utPLSQL 是一个 Oracle PL/SQL 和 SQL 单元测试框架,遵循类似于 JUnit 和 RSpec 的行业标准和现代化单元测试框架的最佳模式。utPLSQL 是一个开源项目,基于 Apache-2.0 协议,源代码全部使用 PL/SQL 实现,托管在 GitHub 上。
著名的 Toad for Oracle 工具就是基于 utPLSQL 构建了单元测试功能, utPLSQL 支持以下代码的自动测试:
程序包(Package)
函数(Function)
过程(Procedure)
触发器(Trigger)
视图(View)
可以在 PL/SQL 中执行和观测的任何其他代码
utPLSQL 提供的关键功能包括:
多种方式与匹配器(matcher)进行数据比较;
复杂类型(对象/集合/游标)的原生比较;
测试失败和错误的详细且规范的报告;
通过注解指定和配置测试用例;
通过注解配置测试套件的层次结构;
自动事务控制(可配置);
内置的测试覆盖率报告;
通过报告器(reporter)与 SonarQube、Coveralls、Jenkins 以及 Teamcity 进行集成;
插件式的报告器和匹配器体系结构;
简单灵活的测试调用方法;
通过命令行运行测试并生成各种报告。
utPLSQL 目前的版本为 Version 3,支持 Oracle 11.2 以及更高版本。
使用 utPLSQL 测试 PL/SQL 代码只需要简单的三个步骤:
安装 utPLSQL 测试框架;
创建单元测试用例;
运行测试用例;
下图是通过 SQL Developer 创建业务代码、测试用例以及运行测试的一个简单过程:
首先,我们需要安装 utPLSQL。
下载安装
整个项目包含了多个模块,可以单独进行下载安装:
utPLSQL 框架,核心测试框架,点此进行下载;
utPLSQL-cli,运行 utPLSQL 测试的 Java 命令行客户端,点此进行下载;
utPLSQL-maven-plugin,运行 utPLSQL 测试的 maven 插件,点此进行下载;
utPLSQL SQL Developer 插件,运行 utPLSQL 测试的 SQL Developer 插件,点此进行下载;
我们以 utPLSQL 核心框架的安装为例,其他模块的安装可以参考下文中的相关文档。通过上面的下载链接,可以选择下载 utPLSQL.zip 或者 utPLSQL.tar.gz 文件,然后解压该文件。
[oracle@sqlhost ~]$ cd utPLSQL/source/
[oracle@sqlhost source]$ ls
api create_utplsql_owner.sql install.sql
check_object_grants.sql define_ut3_owner_param.sql reporters
check_sys_grants.sql dummy.sql set_install_params.sql
core expectations uninstall_all.sql
create_grants.sql install_above_12_1.sql uninstall_coverage_tables.sql
create_synonyms_and_grants_for_public.sql install_component.sql uninstall_objects.sql
create_synonyms.sql install_ddl_trigger.sql uninstall.sql
create_user_grants.sql install_headless.sql uninstall_synonyms.sql
create_user_synonyms.sql install_headless_with_trigger.sql
source 目录中提供了 utPLSQL 的源代码以及各种安装和卸载脚本,推荐使用 install_headless_with_trigger.sql 进行安装:
[oracle@sqlhost source]$ sqlplus / as sysdba @install_headless_with_trigger.sql
以上命令使用 SYSDBA 角色运行安装脚本,该脚本会创建一个新的模式用户(ut3),密码为 XNtxj8eEgA6X6b6f;默认使用 users 表空间;同时会将其授权给 public。
安装完成会显示类似以下信息:
No errors.
--------------------------------------------------------------
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
No errors 表安装成功。
可以运行以下 SQL 语句查看 utPLSQL 的版本:
select ut.version() from dual;
UT.VERSION()|
------------|
v3.1.10.3349|
也可以简单运行一下测试:
SQL> set serveroutput on;
SQL> call ut.run();
Finished in .000012 seconds
0 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)
Call completed.
我们还没有创建任何测试用例,所以上面的语句没有执行实际的操作,但是表明 utPLSQL 能够正常运行。
utPLSQL 支持其他的安装方法和选项,可以参考官方用户指南。
如果需要卸载 utPLSQL,可以使用 uninstall.sql 脚本,提供 utPLSQL 所在的模式名即可:
sqlplus / as sysdba @uninstall.sql ut3
该脚本会删除之前安装的对象,但是不会删除模式用户。
另外一种卸载方法就是直接删除 utPLSQL 模式用户。
相关资源
utPLSQL 官方文档;
一个完整的 utPLSQL 演示项目;
在线视频:Oracle PL/SQL 单元测试;
utPLSQL Cheat Sheet;
utPLSQL-cli 说明文件;
utPLSQL maven 插件说明文件;
utPLSQL SQL Developer 插件说明文件;
博客文章:在 SQL Developer 中运行 utPLSQL 测试。
定期更新数据库领域相关文章,欢迎点赞👍、评论📝、收藏❤️!