使用IDLE运行Python PyUnit单元测试

前端之家收集整理的这篇文章主要介绍了使用IDLE运行Python PyUnit单元测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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

猜你在找的Python相关文章