Blog
Running utPLSQL Tests Directly in SQL Developer: A Practical Guide
Learn how to import, run, and export utPLSQL test suites inside SQL Developer, with a step‑by‑step example and notes on limitations.
Published by Tasadduq Burney
10 Sept 2025, 14:57 UTC
3 min53.7K views0

Problem: Manual PL/SQL testing slows development
When PL/SQL code grows, developers often resort to ad‑hoc scripts or SQL*Plus runs to verify behavior. This approach is tedious, easy to forget, and provides little visibility into which tests passed or failed.
Thesis: SQL Developer’s built‑in utPLSQL runner removes the friction
SQL Developer can discover, execute, and report utPLSQL test suites directly from the Connections tree, giving you a graphical test runner without leaving the IDE.
Worked example: Running a simple utPLSQL suite
- Ensure utPLSQL is installed in the target schema and the current database user has the EXECUTE privilege on the utPLSQL packages.
- In SQL Developer, open the Connections pane, expand your Oracle connection, and look for a node labeled
utPLSQLunder the connection name. - Right‑click the
utPLSQLnode and choose Run Tests. A dialog appears listing all discoverable test suites. - Select the suite you want to run (for example,
MY_PKG_TESTS) and click OK. Optionally adjust parallelism or filter by tags in the same dialog. - SQL Developer executes the suite and opens the Test Results pane at the bottom of the window. The pane shows a summary bar (passed/failed/skipped) and a detailed list with error messages and stack traces for any failures.
- To persist the outcome, click the export icon in the Test Results toolbar and choose HTML or CSV. The file can be archived or fed into a CI/CD step.
-- Example utPLSQL test specification (run once to create the suite)
CREATE OR REPLACE PACKAGE my_pkg_tests IS
--%suite(My Package)
--%test(returns correct value)
PROCEDURE returns_correct_value;
END my_pkg_tests;
/
CREATE OR REPLACE PACKAGE BODY my_pkg_tests IS
PROCEDURE returns_correct_value IS
BEGIN
utExpect(my_pkg.get_value()).ToEqual(42);
END;
END my_pkg_tests;
/
The code above shows a minimal test package that SQL Developer will discover under the utPLSQL node after it is compiled.
Trade‑off and limitation
- The integration works only with Oracle databases; other connections (MySQL, PostgreSQL, etc.) do not expose a utPLSQL node.
- If the utPLSQL schema is not granted to the session user, the node will be absent, giving a false impression that the feature is missing.
- Parallel execution speeds up runs but can increase temp tablespace usage; monitor resources on heavily loaded systems.
Actionable next steps
- Verify that utPLSQL is installed: run
SELECT * FROM ALL_OBJECTS WHERE OBJECT_NAME LIKE 'UT%'in a SQL worksheet. - Grant the necessary privileges to your development user:
GRANT EXECUTE ON utplsql TO <user>(run as a privileged user). - Refresh the Connections tree in SQL Developer; the utPLSQL node should appear.
- Adopt the workflow above for every PL/SQL change: write tests, run them via the IDE, export results for your pipeline.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.