[TIP] problems w/ coverage and threads?
Dirk Pranke
dpranke at chromium.org
Tue Aug 24 11:36:42 PDT 2010
Hi all,
I'm running the following program under coverage on a Mac Pro running
Snow Loepard (using "coverage run threads_unittest.py", python 2.5,
coverage 3.3.1) and getting no coverage numbers from the
TestThread.run()
method. Also, if I try to mark it ignored with "# pragma: no cover",
that seems to have no effect.
I would have thought that both of these things would work. Any ideas?
-- Dirk
% cat threads_unittest.py
import Queue
import threading
import unittest
class TestThread(threading.Thread):
def __init__(self, started_queue, stopping_queue):
threading.Thread.__init__(self)
self._started_queue = started_queue
self._stopping_queue = stopping_queue
def run(self):
print "starting thread"
self._started_queue.put('')
msg = self._stopping_queue.get()
print "exiting thread"
class ThreadTest(unittest.TestCase):
def test_threads(self):
starting_queue = Queue.Queue()
stopping_queue = Queue.Queue()
thd = TestThread(starting_queue, stopping_queue)
stopping_queue.put('')
thd.start()
starting_queue.get()
thd.join()
self.assertTrue(True)
if __name__ == '__main__':
unittest.main()
%
More information about the testing-in-python
mailing list