AttributeError: 'module' object has no attribute 'TestCase'

Question:

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'
Asked By: Mark

||

Answers:

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.

Answered By: Martijn Pieters

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

Answered By: Ranjita Shetty

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
Answered By: John Prawyn
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.