3.点击 F8 执行当前代码行 , 并执行到下一行代码 。如有必要 , 你也可以使用 F7 跳转到当前行内的函数 。随着你继续执行语句 , 变量的变化将自动呈现在 Debugger 窗口 。
4.注意 Debugger 标签右侧有一个 Console 标签 。Console 标签和 Debugger 标签相互独立 。你可以在 Console 中与程序进行交互 , 在 Debugger 中执行 debug 动作 。
5.转向 Console 标签 , 进入猜测过程 。
6.键入左侧 Debugger 标签中显示的数字 , 点击 Enter 键 。
7.转回 Debugger 标签 。
8.再次点击 F8 , 计算 if 语句 。注意现在你在第 14 行 。为什么不是第 11 行呢?因为第 10 行的 if 语句被计算为 False 。那么为什么当你键入数字后它算出来为 False 了呢?
9.仔细看第 10 行 , 注意我们在对比 user_guess 和一个错误的项 。我们应该对比用户猜测的数字和 random_int , 但此处我们对比的是 randint(从 random 包导入的函数) 。
10.将 randint 更改为 random_int , 按照同样的步骤重新开始 debug 。你会发现 , 这一次到达的是第 11 行 , 第 10 行算出来为 True:

文章插图
恭喜你 , bug 被修复了!
# 在 PyCharm 中进行代码测试
不经单元测试的应用都不可靠 。PyCharm 可以帮助你快速舒适地写单元测试并运行 。默认情况下 , unittest 被用作测试运行器 , 而 PyCharm 还支持其他测试框架 , 如 pytest、nose、doctest、tox 和 trial 。例如 , 你可以按照以下步骤为项目选择 pytest 测试运行器:
1.打开 Settings/Preferences → Tools → Python Integrated Tools 设置对话框 。
2.在默认测试运行器字段中选择 pytest 。
3.点击 OK 保存该设置 。
本教程的示例将使用默认测试运行器 unittest 。
在同一个项目中 , 创建文件 calculator.py , 并将以下 Calculator 类放入该文件:

文章插图
PyCharm 使得为已有代码创建测试变得轻而易举 。打开 calculator.py 文件 , 执行以下步骤中的任意一个:
- 在 Mac 系统中使用 Shift+Cmd+T 键 , 在 Windows 或 Linux 系统中使用 Ctrl+Shift+T 。
- 右键单击该类的背景 , 选择「Go To and Test」 。
- 在主菜单中吗 , 选择 Navigate → Test 。
选择「Create New Test…」 , 得到以下窗口:

文章插图
Target directory、Test file name 和 Test class name 这三项均保留默认设置 。选中上图中两种需要测试的方法并点击 OK 。好了!PyCharm 自动创建文件 test_calculator.py , 并在其中创建了以下 stub test:

文章插图
使用以下方法中的任意一个运行测试:
- 在 Mac 系统中使用 Ctrl+R 键 , 在 Windows 或 Linux 系统中使用 Shift+F10 键 。
- 右键单击背景 , 选择「Run 『Unittests for test_calculator.py』」 。
- 点击测试类名称左侧的绿色小箭头 , 选择「Run 『Unittests for test_calculator.py』」 。
你将看到底部出现测试窗口 , 所有测试均失败:

文章插图
注意 , 左侧是测试结果的层次结构 , 右侧是终端的输出 。现在 , 将代码更改成以下代码 , 实现 test_add:

文章插图
重新运行测试 , 你会看到一个测试通过了 , 另一个则失败 。按照如下操作探索不同选项 , 来展示已通过测试和被忽略测试 , 按照字母顺序对测试进行排序 , 以及按照时长对测试进行排序:

文章插图
注意 , 上图中的 sleep(0.1) 方法的作用是使其中一个测试变慢 , 以便按时长对测试进行排序 。
# 在 PyCharm 中编辑已有项目
推荐阅读
- 微信封外链,改布局…运营难度升级?!一文说透:改版后公众号增长的4大趋势
- 冬日有益身心的祛寒茶
- 陶瓷茶具的选择
- 山姆超市家里人的会员卡不能用吗,山姆会员店家人的用不了吗
- 2022年长春的人今年能回家过年吗,2022年春节能不能回长春过年
- 南京每年的清明节冷吗2022,南京清明节温度一般是多少
- 梦见自己当别人面小便 梦到当着好多人的面小便
- 中国古代一夫一妻还是一夫多妻制 古代一夫多妻制的原因
- 饮怎样的茶对健康更有利
- 什么是锁扣地板 锁扣地板的选购
