Chris Fonnesbeck wrote:
I have a module for which I am trying to code a unit test. However,
when I run unittest.main(), I get:
In [1]: import PyMC
In [2]: PyMC.unittest.main()
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
This is confusing, because I have set up a class called MCMCTest that
is a sublcass of unttest.TestCase, which in turn contains a test
method. Yet, unittest seems not to be aware of it. Is there anything I
am forgetting?
By default unittest.main() scans the __main__ module for TestCases.
Though you could use it from an interactive interpreter
>>import unittest
unittest.main("PyMC", argv=["yadda", "-v"])
test_alpha (PyMC.Test) ... ok
test_beta (PyMC.Test) ... ok
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
$ # Oops
without countermeasures unittest.main() will exit that too after completion.
The normal usage (the only one I know) is to put it inside the test script:
# your testcases
if __name__ == "__main__":
unittest.main()
and run that from the shell:
$ python PyMC.py -v
test_alpha (__main__.Test) ... ok
test_beta (__main__.Test) ... ok
----------------------------------------------------------------------
Ran 2 tests in 0.001s
OK
Peter