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

44.2k views Asked by At

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'
3

There are 3 answers

0
Martijn Pieters On BEST ANSWER

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.

0
John Prawyn On

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
1
Ranjita Shetty On

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