加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用IDLE运行Python PyUnit单元测试

发布时间:2020-12-16 23:38:18 所属栏目:Python 来源:网络整理
导读:在IDLE中有没有办法直接运行PyUnit(unittest模块)单元测试? 我问,因为我有一个简短的测试模块,当我运行它与python mymodule.py从Cygwin shell我得到所有测试通过,但是当我使用Run-运行模块从IDLE测试通过,但是我得到一个异常(SystemExit:False). 例如,以下
在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:SomepathinfoIshortenedfooTests.py",line 20,in <module>
    unittest.main()
  File "C:Python26libunittest.py",line 817,in __init__
    self.runTests()
  File "C:Python26libunittest.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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读