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

Unit test generation does not work for python in PyCharm #2670

Open
fhg-isi opened this issue Nov 2, 2023 · 5 comments
Open

Unit test generation does not work for python in PyCharm #2670

fhg-isi opened this issue Nov 2, 2023 · 5 comments
Labels
ctg-bug Issue is a bug

Comments

@fhg-isi
Copy link

fhg-isi commented Nov 2, 2023

Description

If I select "Generate..." from the context menu in PyCharm, I would expect to see an option
"Test with UnitTestBot..." as shown in the Video of the Extension:

image

However, the option is missing.

=> How to use UnitTestBot for Python code in PyCharm?

"UnitTestBot for Java/Kotlin, C/C++, Python, JavaScript, and Go."

If the extension does not support PyCharm/Python, please write so in the plugin description or disable the extension to be shown for PyCharm.

@fhg-isi fhg-isi added the ctg-bug Issue is a bug label Nov 2, 2023
@tyuldashev
Copy link
Collaborator

Hi,
Release version works in IDEA only, with installed Python plugin you could generate tests for Python there. Don't forget to enable Experimental language support in UTBot settings.

PyCharm support is in development at the moment, you may try it by installing plugin from main branch. Download utbot-intellij-PY-main-2023.10.5369 from here and use Install from disk option from Plugin settings.

We will look how to prevent installation of improper plugin version from the Market.

@fhg-isi
Copy link
Author

fhg-isi commented Nov 2, 2023

Thank you very much for the fast answer. I tried to enable Experimental language support in the already installed version. Now I get the expected menu option. However, the test generation fails with a NoClassDefFoundError.

Then I installed

https://github.com/UnitTestBot/UTBotJava/suites/17746700914/artifacts/1016410535

After running the command again, I got a new menu and was asked to install some missing dependencies. I did so.

Now the extension actually generates some test file.

However, it is not located at the expected target location. Also see

https://stackoverflow.com/questions/77409726/ho-to-generate-unit-tests-for-python-in-pycharm-using-src-and-test-folder-stru

image

image

image

@tyuldashev
Copy link
Collaborator

Regarding folders: it's better to have dedicated folder as I see on your screenshot test folder at the same level as src. You may point UTBot in the dialog:
image

About error in the code: have you moved the test file from another folder or added second line yourself?

@fhg-isi
Copy link
Author

fhg-isi commented Nov 2, 2023

Ah. I misinterpretet the meaning of the option. I selected the src folder. But it should be the test folder, I guess. Maybe a better name would be "Test destination root" or so.
After selecting test as "Test soruces root" now the genrated test is test/test_src_foo_foo_foo.py.
However, I would expect
test/foo/test_foo.py
where UnitTestBot automatically detects the sub folders structure within src and applies a similar structure for the generated tests.

@tyuldashev
Copy link
Collaborator

UnitTest bot for PyCharm is available through Marketplace now. Also we hide UTBot for IDEA from the search in PyCharm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ctg-bug Issue is a bug
Projects
Status: Todo
Development

No branches or pull requests

2 participants