Unittest failed in Python IDE PyCharm

python unittest
pycharm unittest
pycharm unit test configuration
pycharm unittest empty suite
pycharm pytest
pycharm run unit tests instead of run
pycharm no tests were found
pycharm unit test framework

I tried to make a simple unittest in Python, but I don't know why the test failed. I have made three files:

  • name_function.py in which I have a function that receive two parameters (first name, last name) and return the concatenated name.
        def get_formatted_name(first, last):
            full_name = first + ' ' + last
            return full_name.title()
  • names.py in which the user is asked to enter the first name and last name or q to quit. After that the function get_formatted_name is called and concatenated name is printed.
        from name_function import get_formatted_name
    
        print("\n Enter 'q' at any time to quit.")
        while True:
            first = input("\n Please give me a first name : ")
            if first == 'q':
                break
            last = input("\n Please give me a second name : ")
            if last == 'q':
                break
    
        formatted_name = get_formatted_name(first, last)
        print("\n\t Neatly formatted name : " + formatted_name + '.')   
  • test_name_function.py where the function is tested.
        import unittest  
        from name_function import get_formatted_name  
 
        class NamesTestCase(unittest.TestCase):  
            def test_first_last_name(self):  
                formatted_name = get_formatted_name('Clint', 'Eastwood')  
                self.assertEqual(formatted_name, 'Clint Eastwood')  

        unittest.main()  
  • In this window, I run cmd command (see attach Capture_1).
  • In cmd I run the command (see attach Capture_2 and Capture_3).
  • I don't understand where is my mistake? In Capture_3 see what I obtain when I run the test.
  • I use Python 3.7.2 and the IDE Python that I use is PyCharm.

Capture_1 Capture_2 Capture_3

Your code looks good to me. I ran it on my machine and it works great. The only thing I noticed is python -m unittest does not find your test. A quick workaround would be to add the following at the end of your unittest file.

if __name__ == '__main__':
    unittest.main()

Then, you can run it with the following command. python test_name_function.py

Unittest errors – IDEs Support (IntelliJ Platform), Launching unittests with arguments python -m unittest The problem here is PyCharm use And unfortunately it fails because you have From the Python 2.7 unittest.main docs: Changed in version 2.7: The exit, verbosity, failfast, catchbreak and buffer parameters were added. So PyCharm unittest support is now only compatible with 2.7 and forward it seems.

Can't run unit test in Test Runner – IDEs Support (IntelliJ Platform , When I run it, it simply runs as any other python program would run and outputs information in the "Run" window. I feel like there is something I� Python Interpreter: Select one of the pre-configured Python interpreters from the list. When PyCharm stops supporting any of the outdated Python versions, the corresponding project interpreter is marked as unsupported. Interpreter options: In this field, specify the string to be passed to the interpreter.

This is because it is assumed that you are running on the interactive interpreter and at the point of the exception it fails with a SystemExit. However, Like mentioned in the comment from @Zykerd the

if __name__ == '__main__':
    unittest.main()

above would solve this problem by assuming that the script is being run from the command line instead of interactive interpreter.

Cheers!

Please check here for further explanation : Tests succeed, still get traceback

Run/Debug Configuration: Python Unit Test, , and type the string in the editor. Working directory. Specify a directory to be used by the running task. When a default run/debug configuration is� Step 3. Test your first Python application. Remember, in the first tutorial you’ve created your first Python application, and in the second tutorial you’ve debugged it. Now it’s time to do some testing. Choosing the test runner. If you used nosetest, pytest, or Twisted Trial before, you have to choose unittest.

Unittest failed in Python IDE PyCharm, Your code looks good to me. I ran it on my machine and it works great. The only thing I noticed is python -m unittest does not find your test. Write neat and maintainable code while the IDE helps you keep control of the quality with PEP8 checks, testing assistance, smart refactorings, and a host of inspections. Simply All You Need PyCharm is designed by programmers, for programmers, to provide all the tools you need for productive Python development.

Getting Started With Testing in Python – Real Python, If the result from sum() is incorrect, this will fail with an AssertionError and the If you're using the PyCharm IDE, you can run unittest or pytest by following these� It got further along on 2.7, but unit test still failed. Reinstalled PyCharm, then installed Python 3.6 for all users on PC , which was version in the tutorial.

How to set-up and use py.test in Pycharm, The obvious choice for programming in Python is the PyCharm. It's a nice IDE, supports many features that I like and most importantly, it can help with the testing . Ah. I see, you launch the test file as a script. The problem here is PyCharm use. python -m unittest. to execute tests, you can try it in the terminal. And unfortunately it fails because you have. unittest.main() instruction on the last line. Try to place it inside if statement: if __name__ == '__main__': unittest.main()

Comments
  • I think the problem is that without the guard, unittest.main() is being called again when the test file is imported and is doing a sys.exit(1) internally which results in the error.
  • Thank you Grismar.
  • You're welcome - if the answer answered your question, please accept it with the checkmark so the question is marked answered.
  • Thank you, CodeNinja.