进行unittest单元测试,修改未通过函数,测试结果不发生变化

进行unittest单元测试,修改未通过函数,测试结果不发生变化

跪求各位大神帮忙看看,本人新手一枚,正在学习《Python编程从入门到实践》这本书。
使用的环境是vscode 2019 +anaconda3+jupyter notebook扩展,Python版本是3.9.7。
我使用jupyter notebook来复写书中的代码并做笔记。


以下是碰到的问题:
在学到此书《11章-函数测试》的时候,在11.1.3节,有函数get_formatted_name()如下:

#11.1.3节函数,存入name_function.py

def get_formatted_name(first,middle,last):

"""生成整洁的姓名"""

full_name = f"{first} {middle} {last}"

return full_name.title()

然后导入unittest模块进行单元测试

#测试代码

import unittest

from name_function import get_formatted_name

class NamesTestCase(unittest.TestCase):

"""测试get_function_name"""

def test_first_last_name(self):

"""能够正确地处理像Janis Joplin这样的姓名吗?"""

formatted_name = get_formatted_name("janis","joplin")

self.assertEqual(formatted_name,"Janis Joplin")

if __name__ == "__main__":

unittest.main(argv=['first-arg-is-ignored'], exit=False)

测试未通过,说少了一个{last}位置实参。测试结果正确。
于是修复了该函数,如下:

#11.1.4测试函数,更新到name_function.py

def get_formatted_name(first,last,middle=""):

"""生成整洁的姓名"""

if middle:

full_name = f"{first} {middle} {last}"

else:

full_name = f"{first} {last}"

return full_name.title()

再次运行测试,仍显示测试未通过,说少一个{last}位置实参。测试结果错误!
我分明已经修复了函数!!


做出的尝试:
1 我将单元测试的代码复制到独立的Python下,重新执行测试。测试通过!测试结果正确
2 我将vscode关闭,再重新打开,进行测试,测试通过!测试结果正确
3 我再将函数恢复到11.1.13节中的函数,保存,再测试仍通过!测试结果错误
4 我将vscode关闭,再重新打开,进行11.1.13中的测试,测试未通过!测试结果正确


于是,我发现:
jupyter notebook中进行的unittest测试,
假如函数本身可以通过测试,并进行了一轮测试,测试结果显示通过,那么
如果修改了函数,再进行测试必须要重启vscode,否则无论怎么改(即便本身就不能通过测试了),函数测试都是通过!

同理:
假如函数本身就不能通过测试,并进行了一轮测试,测试结果为不通过,那么
如果修改了函数,再进行测试必须要重启vscode,否则无论怎么改,(即便本身可以通过测试)函数测试都是未通过,连未通过的原因都是相同的!


这到底是怎么造成的?有什么逻辑在里面?跪求大神解答!

以上是 进行unittest单元测试,修改未通过函数,测试结果不发生变化 的全部内容, 来源链接: utcz.com/p/938357.html

回到顶部