zjy_david 2022-04-01 23:08 采纳率: 0%
浏览 41
已结题

在jupyter notebook+vscode+anaconda3中进行测试,每次都要重新启动vscode才能测试成功,是啥原因?

我用的环境是vscode 2019 +anaconda3+jupyter notebook扩展,Python版本是3.9.7
在学习《Python编程从入门到实践》这本书的时候,第11章讲测试函数,第11.1.3小节有函数如下:

#11.1.3节函数
def get_formatted_name(first,middle,last):
    """生成整洁的姓名"""
    full_name = f"{first} {middle} {last}"
    return full_name.title()

将此函数存入了name_function.py,然后用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:

#11.1.4测试函数
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()

再次使用unittest进行测试,本应通过的测试,结果测试仍然是失败,显示缺少一个实参{last}(同函数修改前)
我将测试代码放在Python下进行独立测试,结果测试结果通过
于是我又在jupter notebook下测试,还是不通过
我重启了vscode,再次在jupter notebook下测试,通过!
我又将函数恢复成11.1.3节中的函数,存入name_function.py结果测试通过!(不应该通过,少了{last}实参)
重启vscode后,再次运行,11.1.3节中的测试代码又正常显示不通过!
这是什么情况?求高人解答!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 4月9日
    • 创建了问题 4月1日

    悬赏问题

    • ¥15 Matlab安装yalmip和cplex功能安装失败
    • ¥15 加装宝马安卓中控改变开机画面
    • ¥15 STK安装问题问问大家,这种情况应该怎么办
    • ¥15 更换了一个新的win10系统,再下载VS时碰到的问题,是C++组件的?
    • ¥15 关于罗技鼠标宏lua文件的问题
    • ¥15 halcon ocr mlp 识别问题
    • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线
    • ¥20 无法创建新的堆栈防护界面
    • ¥15 sessionStorage在vue中的用法
    • ¥15 wordpress更换域名后用户图片头像不显示