IDLE 内で、PyUnit (ユニットテスト モジュール) 単体テストを直接実行する方法はありますか?
短いテスト モジュールがあり、Cygwin シェルから python mymodule.py を使用して実行すると、すべてのテストに合格しますが、IDLE から Run->Run Module を使用すると、テストは成功しますが、例外が発生します ( SystemExit: False)。
たとえば、これを再現するためのサンプル テスト モジュールを次に示します。
#!/usr/bin/python
import unittest
class fooTests(unittest.TestCase):
def setUp(self):
self.foo = "bar"
def testDummyTest(self):
self.assertTrue(True)
def testDummyTestTwo(self):
self.assertEquals("foo", "foo")
def tearDown(self):
self.foo = None
if __name__ == '__main__':
unittest.main()
python fooTests.py を使用して Cygwin シェルからこれを実行すると、次のようになります。
$ python fooTests.py
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
しかし、IDLE 内で fooTests.py を編集していて、[実行] -> [モジュールの実行] を実行すると、IDLE によって生成された新しい Python シェルが生成されます。
>>> ================================ RESTART ================================
>>>
..
----------------------------------------------------------------------
Ran 2 tests in 0.031s
OK
Traceback (most recent call last):
File "C:\Some\path\info\I\shortened\fooTests.py", line 20, in <module>
unittest.main()
File "C:\Python26\lib\unittest.py", line 817, in __init__
self.runTests()
File "C:\Python26\lib\unittest.py", line 865, in runTests
sys.exit(not result.wasSuccessful())
SystemExit: False
>>>
このトレースバックを生成するために、私は何を間違っていますか?特に、IDLE 内で Run->Run Module (または F5) を実行して単体テストをすばやく実行できるように修正するにはどうすればよいですか?
(これは確かに簡単な質問に違いありませんが、それを理解しようとする私の素早い試みは無駄であることが証明されました。)