python中使用unittest创建测试用例以及报错处理

使用python对已编写的函数进行测试
一般格式为:

import unittest
from ModuleName import FunctionName
class testcase(unittest.TestCase):
	def test_FunctionName(self):
        var=FunctionName(INPUT)
        self.assertEqual(var,OUTPUT)
unittest.main()

但是在实际的操作中(例为使用jupyter notebook的情况),却可能会出现这样的情况:

import unittest
def greet(name):
    greeting=name+",hello"
    return greeting

class testcase(unittest.TestCase):
    def test_greet(self):
        greetin=greet("java")
        self.assertEqual(greetin,"java,hello")
unittest.main()

E

====================================================================== ERROR:
C:\Users\Administrator\AppData\Roaming\jupyter\runtime\kernel-8daecc65-9072-4330-a105-1d1794e47be6
(unittest.loader._FailedTest)


AttributeError: module ‘main’ has no attribute
‘C:\Users\Administrator\AppData\Roaming\jupyter\runtime\kernel-8daecc65-9072-4330-a105-1d1794e47be6’

---------------------------------------------------------------------- Ran 1 test in 0.001s

FAILED (errors=1) An exception has occurred, use %tb to see the full
traceback.

SystemExit: True

D:\1984096375\anaconda\lib\site-packages\IPython\core\interactiveshell.py:2969:
UserWarning: To exit: use ‘exit’, ‘quit’, or Ctrl-D. warn(“To exit:
use ‘exit’, ‘quit’, or Ctrl-D.”, stacklevel=1)

在查阅了资料之后发现这个测试方法适用于使用命令行模式对函数进行测试,使用命令行:
如图,显示的是正常的结果
如图,显示的是正常的结果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1. 使用测试用例完成执行测试: ```python import unittest class TestNameList(unittest.TestCase): def setUp(self): self.names = ['Alice', 'Bob', 'Charlie'] def test_name_in_list(self): name = 'Alice' self.assertIn(name, self.names) def test_name_not_in_list(self): name = 'Dave' self.assertNotIn(name, self.names) if __name__ == '__main__': unittest.main() ``` 在上述代码,我们定义了一个 `TestNameList` 测试类,它继承自 `unittest.TestCase` 类。在该类的 `setUp` 方法,我们初始化了一个姓名列表。我们还定义了两个测试方法 `test_name_in_list` 和 `test_name_not_in_list`,用于测试输入的用户姓名是否在列表。在这两个测试方法,我们使用了 `self.assertIn` 和 `self.assertNotIn` 断言方法,来判断输入的用户名是否在列表。最后,我们使用 `unittest.main()` 方法运行测试。 2. 使用测试套件完成执行测试: ```python import unittest class TestNameList(unittest.TestCase): def setUp(self): self.names = ['Alice', 'Bob', 'Charlie'] def test_name_in_list(self): name = 'Alice' self.assertIn(name, self.names) def test_name_not_in_list(self): name = 'Dave' self.assertNotIn(name, self.names) if __name__ == '__main__': suite = unittest.TestSuite() suite.addTest(TestNameList('test_name_in_list')) suite.addTest(TestNameList('test_name_not_in_list')) runner = unittest.TextTestRunner() runner.run(suite) ``` 在上述代码,我们首先定义了一个 `TestNameList` 测试类,与前面的例子相同。接着,我们使用 `unittest.TestSuite()` 方法创建一个测试套件。然后,我们使用 `suite.addTest()` 方法,将两个测试用例添加到测试套件。最后,我们创建一个 `unittest.TextTestRunner()` 对象,并使用 `runner.run()` 方法运行测试套件。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值