在IDLE中有没有办法直接运行PyUnit(unittest模块)单元测试?
我问,因为我有一个简短的测试模块,当我运行它与python mymodule.py从Cygwin shell我得到所有测试通过,但是当我使用Run->运行模块从IDLE测试通过,但是我得到一个异常(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 shell运行它时,它会产生:
$python fooTests.py .. ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK
但是当我在IDLE中编辑fooTests.py并且我运行 – >运行模块,由IDLE生成的新Python Shell产生:
>>> ================================ 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->运行模块(或F5)来快速运行单元测试?
解决方法
你也可以做
if __name__ == '__main__': unittest.main(exit=False)
如果你使用Python> = 2.7
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。