utPLSQL/utPLSQL-SQLDeveloper

Run utPLSQL test greyed out in Schema Browser (other schema and own schema)

mhoys opened this issue · 6 comments

mhoys commented

Hi,
I'm using the utPLSQL extension version 1.2.0 with SQL Developer 19.4.
I can right-click in the connections window and run utPLSQL tests on packages in my own schema, but I cannot do this on packages in another schema - the utPLSQL options are greyed out. Any idea what could be causing this? If I run them like this from my own schema, it works fine:

set serveroutput on
begin
ut.run('other_schema.ut_package');
end;

PS: I have enough rights to create and execute objects in the other schema.

Thanks
Matthias

In the following scenario I'm connected to UT3_TESTER_HELPER (your user) and select under the node Other Users the test package TEST_OUTPUT_BUFFER owned by UT3_TESTER (your other_schema). And then I right-click on this node to show the context menu.

image

The statement log shows the code executed behind the scenes to determine if a package can be executed. The code may differ depending on the installed utPLSQL version (that's why it is important to know which version of utPLSQL you are using). In my case I use the most recent develop version v3.1.11.3466-develop). The code looks like this when showing the cell value of the SQL column:

DECLARE
   l_return VARCHAR2(1) := '0';
BEGIN
   IF ut_runner.is_suite(?, ?) THEN
      l_return := '1';
   END IF;
   ? := l_return;
END;

The bind variables UT3_TESTER and TEST_OUTPUT_BUFFER are used as you see on the parameters column. Based on that I can run an adapted version of the code in my worksheet as well, e.g. as follows:

SET SERVEROUTPUT ON
DECLARE
   l_return VARCHAR2(1) := '0';
BEGIN
   IF ut_runner.is_suite('UT3_TESTER', 'TEST_OUTPUT_BUFFER') THEN
      l_return := '1';
   END IF;
   dbms_output.put_line(l_return);
END;
/

In my chase the output is:

1

PL/SQL procedure successfully completed.

So, I assume that in your case 0 is returned and that leads to a disabled Run utPLSQL test context menu entry.

mhoys commented

Hi Philipp,

We are using utPLSQL version v3.1.9.3270.

I executed your piece of PL/SQL code and it returned 1 in my case, so this looks ok.

However, I have found something else based on your feedback.
I normally browse to the objects of other users by right-clicking in my schema name in the connections window, then choose "Schema Browser" and select the required schema. The utPLSQL options are greyed out there! However, when I try it your way and open the other schema from the "Other Users" folder in my schema, it works fine and the utPLSQL context menu is correctly enabled! Can you reproduce this behaviour? Let me know if you need more information.

Thanks,
Matthias

Yes, I can reproduce it.

image

It looks like it's not possible to select test packages in the Schema Browser. It does not matter which schema is selected. Does not work with the own schema schema. I consider this a bug. Thank you for reporting it.

mhoys commented

Thanks, good to know it's a bug and not something related to my configuration ;-)

mhoys commented

(oops maybe I should better not close this one)

mhoys commented

Thanks, I can confirm it's working fine now (I tried v1.2.1 with SQL Developer 20.2).