33

I have file with unittest named: test.py

My code:

import unittest

class Test(unittest.TestCase):

    def myTest(self):
        a = 1
        self.assertEqual(a, 1)


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

When I press F5, I get an error:

Traceback (most recent call last):
  File "/home/mariusz/Pulpit/test.py", line 1, in <module>
    import unittest
  File "/home/mariusz/Pulpit/unittest.py", line 3, in <module>
AttributeError: 'module' object has no attribute 'TestCase'
0

3 Answers 3

78

You have a local file named unittest.py that is being imported instead:

/home/mariusz/Pulpit/unittest.py

Rename that file or remove it altogether. Make sure you remove any corresponding unittest.pyc file in the same folder if it is there.

The file is masking the standard library package.

Sign up to request clarification or add additional context in comments.

Comments

2

Your script named unittest.py is replacing the module file. Rename your unittest.py script to something else.

1 Comment

Your answer is just a copy of the accepted answer above from more than five years ago.
0

In my case, one of the dependency was not there.

import os
from some_package import some_module

the some_module was not there in python(python couldn't import it). Once I commented the import statement python started discovering my test cases.

python -m unittest tests.test_my_own_module

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.