utPLSQL:一個 Oracle PL/SQL 單元測試框架

utplsql

utPLSQL 簡介

utPLSQL 是一個 Oracle PL/SQL 和 SQL 單元測試框架,遵循類似於 JUnitRSpec 的行業標準和現代化單元測試框架的最佳模式。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 代碼只需要簡單的三個步驟:

  1. 安裝 utPLSQL 測試框架;
  2. 創建單元測試用例;
  3. 運行測試用例;

下圖是通過 SQL Developer 創建業務代碼、測試用例以及運行測試的一個簡單過程:

test

首先,我們需要安裝 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 模式用戶。

相關資源

定期更新數據庫領域相關文章,歡迎點贊👍、評論📝、收藏❤️!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章