Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No test found #156

Closed
LydiaAzzoug opened this issue Jul 18, 2022 · 15 comments
Closed

No test found #156

LydiaAzzoug opened this issue Jul 18, 2022 · 15 comments
Assignees
Labels

Comments

@LydiaAzzoug
Copy link

Hello,
Is your feature request related to a problem? Please describe.

I try to run the Test_addition package on both MBED4 and MBED4_TEST databases (sui is an MBED4 image) but it doesn't work (no test found). However running on the sgbd output gives the following script:
**
alltests
test_addition
myfunction [,106 sec] (FAILED - 1)

Failures:

  1. myfunction
    Actual: 2 (number) was expected to equal: 1 (number)
    at "MBED4_TEST.TEST_ADDITION.MYFUNCTION", line 18 ut.expect(l_actual).to_equal(l_expected);

Finished in ,128949 seconds
1 tests, 1 failed, 0 errored, 0 disabled, 0 warning(s)
**
Describe the solution you'd like
I executed this require: ALTER USER UT3 quota unlimited on UT_DATA; but i have the same problem
i also gave MBED4 AND MBED4_TEST all rights (execution , selection..):
begin
for i in (select * from all_OBJECTS where owner = 'POWERCARD' and object_type = 'TABLE' )
LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON '||I.OBJECT_NAME|| ' TO MBED4_TEST';
END LOOP;
end ;
...

Thank you in advance
MBED4
MBED4_TEST

@jgebal
Copy link
Member

jgebal commented Jul 18, 2022

Hello @LydiaAzzoug

Please do not use utPLSQL SQLDeveloper extension to report issues in utPLSQL. It makes it very hard to understand if the problem is with utPLSQL or with the extension. It also is harder to see what is going on.

The best you could do is to report the errors from plain-text begin ut.run('MBED4_TEST.TEST_ADDITION'); end;
This will produce output to the DBMS_OUTPUT.

Also, when you are referencing "MBED4 and MBED4_TEST databases" I suspect you are not really talking about separate database instances that you connect to, but you are actually talking about different database schemas in a single database instance.

Please try to use precise names. DATABASE, DATABASE INSTANCE and DATABASE SCHEMA are very different things.

Anyway,
It seems that you're struggling to understand why utPLSQL fails to execute the test-suite package.

To help you understand what is required let me give you few tips.

utPLSQL executed the tests as using the session and privileges of the connected user. It will always look for things to execute in context of CURRENT SCHEMA if not schema name is given when executing stuff.

If you want to execute test suite TEST_ADDITION that exists in schema MBED4_TEST try running the following series of commands from sql worksheet in SQLDeveloper

select username from all_users where username = 'MBED4_TEST';

--will show the connected user name as well as the current schema of that user
select user, sys_Context('userenv','current_schema') from dual;
--will show a record with information about the test package and it's status 
select object_name, object_type, status from all_objects where owner = 'MBED4_TEST' and object_name = 'TEST_ADDITION';
--will show test package specification as it is in the database schema
select line, text from all_source where owner = 'MBED4_TEST' and name = 'TEST_ADDITION' order by line;

set serveroutput on

--will execute the test procedure outside of utPLSQL framework runner.
begin
  MBED4_TEST.TEST_ADDITION.myfunction;
end;
/
--will run the test package using utPLSQL 
begin
  ut.run('MBED4_TEST.TEST_ADDITION');
end;
/

Please share the output from execution of the above script as TEXT (not as a screenshot)

That way I can check and review what is cause of your problem.

@LydiaAzzoug
Copy link
Author

hello,
You will find attached two outputs, one for MBED4 and the other for MBED4_TEST

DBMSOutput_MBED4_TEST.txt
DBMSOutput_MBED4.txt

Thank you in advance

@jgebal
Copy link
Member

jgebal commented Jul 19, 2022

@LydiaAzzoug

In both outputs it is clear that utPLSQL works and executes the tests.
I really don't see this as a utPLSQL isssue. IT must be something related to SQLDeveloper or SQLDeveloper extension.

Are you able to do a screen recording of the issue you are facing?

@LydiaAzzoug
Copy link
Author

LydiaAzzoug commented Jul 19, 2022 via email

@pesse
Copy link
Member

pesse commented Jul 19, 2022

The video is very bad quality so I have a hard time to even see what packages are being run etc. Can you retry it with at least 640p, better 1080?

@jgebal
Copy link
Member

jgebal commented Jul 19, 2022

I see the key issue. The issue is related to SQLDeveloper extension. The extension fails to run the tests for some reason.

The tests run in Worksheet but no tests are found when running via SQLDeveloper - extension.
I will move that issue to SQLDeveloper extension project

@LydiaAzzoug - You will need to provide a bit more details:

  • version of SQLDeveloper
  • version of utPLSQL-SQLDeveloper extension

@PhilippSalvisberg - anything else is needed?

@jgebal jgebal transferred this issue from utPLSQL/utPLSQL Jul 19, 2022
@PhilippSalvisberg
Copy link
Member

When I look at the screen shot then I do not see a suite and test annotation. Therefore the message "no tests found" is correct.

@LydiaAzzoug
Copy link
Author

LydiaAzzoug commented Jul 19, 2022 via email

@PhilippSalvisberg
Copy link
Member

PhilippSalvisberg commented Jul 19, 2022

@LydiaAzzoug I can reproduce the problemn when I create a test package in the SQLDev editor but do not deploy it in the database.

Please try the following:

Create the following code in the SQLDev editor

create or replace package test_addition is

   --%suite(ut3)
   --%suitepath(alltests)

   --%test
   procedure myfunction;

end test_addition;
/

and deploy it by pressing Ctrl-Enter or by pressing this icon in the toolbar of the worksheet:

image

and then select run utPLSQL test from the context menu in the editor

image

In my SQLDev, the result looks like this:

image

Please try also to run the the following in a new SQLDev worksheet using the same connection as the one you used to deploy the test package:

set serveroutput on size unlimited
execute ut.run('test_addition');

In my case the result looks like this:

image

What are the results in your case?

@LydiaAzzoug
Copy link
Author

LydiaAzzoug commented Jul 19, 2022 via email

@PhilippSalvisberg
Copy link
Member

@LydiaAzzoug can you please post the result of

set serveroutput on size unlimited
execute ut.run('test_addition');

Thank you.

@PhilippSalvisberg
Copy link
Member

@LydiaAzzoug: Since we cannot reproduce the problem, we obviously miss something. utPLSQL seems to work fine. Just the SQL Developer extension does not find any tests. Right?

Could you please provide all information to make the issue reproducible.

  1. Oracle SQL Database version
  2. utPLSQL version
  3. SQL Developer version
  4. utPLSQL for SQL Developer version
  5. Exact steps you are doing to run the tests. In text form or a video with a good resolution which is available on a public channel like youtube.
  6. The source of the test package

Thanks.

@LydiaAzzoug
Copy link
Author

LydiaAzzoug commented Jul 19, 2022 via email

@PhilippSalvisberg
Copy link
Member

@LydiaAzzoug Thanks for letting us know.

Still, this does not explain why the tests run in utPLSQL but not in the SQLDev extension. I still think we miss here something.

However, since the issue is not reproducible on your side I close the issue.

@LydiaAzzoug
Copy link
Author

LydiaAzzoug commented Oct 11, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants