Python unittest not recognizing tests

python, python-unittest

Solution

If you move

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

To the end of the script, then it will work.

Update

Here is my speculation: when you called `unittest.main()` in the middle of the script, your test class has not been defined yet, thus `unittest` did not pick up any tests. By moving the `unittest.main()` to the end, or more precisely--after your define your test class, you make sure that `unittest` sees those tests.

Problem

I'm trying to learn how to use the `unittest` framework in python. I keep getting the message below when I run my file containing the tests. ``` ---------------------------------------------------------------------- Ran 0 tests in 0.000s OK ``` I've searched here and elsewhere and can't figure out why it is not recognizing the tests. Each test starts with `test` and the other portions of the `unittest` seem to match what the documentation requires. Here is the text of the script: ``` import unittest from datetime import datetime, timedelta class Activity(object): 'Holds detail information on a activity' def __init__(self, location, activity_name, activity_id, start_date, end_date): self.activity_name = activity_name self.activity_id = activity_id self.start_date = datetime.strptime(start_date, '%m/%d/%Y').date() self.end_date = datetime.strptime(end_date, '%m/%d/%Y').date() self.location = location if __name__ == '__main__': unittest.main() class TestActivity(unittest.TestCase): def setUp(self): self.activity = Activity('UVU', 'OpenWest', 'Beginning Python' , '00000', '12/1/2013', '12/30/3013') def test_activity_creation(self): self.assertEqual(self.activity.location, 'UVU') self.assertEqual(self.activity.activity_name, 'OpenWest') self.assertEqual(self.activity.activity_id, '00000') self.assertEqual(self.activity.start_date, datetime.strptime('12/1/2013', '%m/%d/%Y').date()) self.assertEqual(self.activity.start_date, datetime.strptime('12/30/2013', '%m/%d/%Y').date()) def test1(self): self.assertEqual(1,1) def tearDown(self): del self.activity ``` Any help is appreciated

Original source