title: Make Python unittest fail on exception from any thread
body: <p>I am using the unittest framework to automate integration tests of multi-threaded python code, external hardware and embedded C. Despite my blatant abuse of a unittesting framework for integration testing, it works really well. Except for one problem: I need the test to fail if an exception is raised from any of the spawned threads. Is this possible with the unittest framework?</p>
  
  <p>A simple but non-workable solution would be to either a) refactor the code to avoid multi-threading or b) test each thread separately. I cannot do that because the code interacts asynchronously with the external hardware. I have also considered implementing some kind of message passing to forward the exceptions to the main unittest thread. This would require significant testing-related changes to the code being tested, and I want to avoid that.</p>
  
  <p>Time for an example. Can I modify the test script below to fail on the exception raised in my_thread <em>without</em> modifying the x.ExceptionRaiser class?</p>
  
  <pre><code>import unittest
  import x
  
  class Test(unittest.TestCase):
      def test_x(self):
          my_thread = x.ExceptionRaiser()
          # Test case should fail when thread is started and raises
          # an exception.
          my_thread.start()
          my_thread.join()
  
  if __name__ == '__main__':
      unittest.main()
  </code></pre>