Thomas Heller wrote:
I'm trying to integrate some doctest tests with unittest.  The tests
must be exposed as one or more subclasses of unittest.TestCase, so I'm
collecting them with a call to doctest.DocTestSuite(), and then add them
to a TestCase class I have created.
The tests seem to run, but they always seem to succeed - I have no idea
why.  Any ideas?

Thomas

---snip---
"""

print "Hi"
print 1213

"""

def func():
    """
    >>> print "spam"
    >>> print blah
    """

import doctest, unittest
suite = doctest.DocTestSuite()

class TestCase(unittest.TestCase):
    pass

for index, test in enumerate(suite._tests):
    setattr(TestCase, "test_%d" % index, test)

if __name__ == "__main__":
    if 1:
        import unittest
        unittest.main()
    else:
        import doctest
        doctest.testmod()
---snip---

I can't explain why all the tests seemed to pass, but I tried a different approach that works.


Once you have a suite object, you just need to run it. The TextTestRunner works well for that. I got output errors and failures by doing the following:

if __name__ == '__main__':
    import doctest, unittest
    suite = doctest.DocTestSuite()
    testRunner = unittest.TextTestRunner()
    testRunner.run(suite)

HTH,
Jim Sizelove
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to