第 3 步:测试您的第一个 Python 应用程序

您所在的位置:网站首页 python右键 第 3 步:测试您的第一个 Python 应用程序

第 3 步:测试您的第一个 Python 应用程序

2023-03-29 14:32| 来源: 网络整理| 查看: 265

请记住,在第一个教程中您已经创建了您的第一个 Python 应用程序,而在第二个教程中您已经调试了它。现在是时候进行一些测试了。让我们修改代码示例brake的方法:

def 刹车(self): self.speed -= 5 选择测试运行器

PyCharm 自动检测安装在Python 解释器上的测试运行程序,并使用它来运行测试。如果没有安装特定的测试运行器,PyCharm 使用unittest。

要在项目设置中明确设置所需的测试运行器,请按Ctrl+Alt+S打开 IDE 设置并选择工具 | Python Integrated Tools,然后从默认测试运行程序列表中选择目标测试运行程序。

选择测试运行器

有关更多详细信息,请参阅测试框架。

创建测试

创建测试的一种快速方法是让 PyC​​harm 从我们要测试的类中将它们存根。为此,我们需要打开Car.py,然后右键单击类的名称,指向Go To,然后选择Test(或只需按Ctrl+Shift+T):

去测试

出现一个弹出窗口,建议创建一个新测试:

创建一个新测试

好的,让我们一起做。我们将测试我们的汽车是否能够加速和制动,所以让我们选中这些复选框:

创建测试对话框

创建了一个新的 Python 测试类:

测试班

您可以为测试创建运行/调试配置并运行它。

从上下文菜单运行测试但是,我们可以看到测试默认失败:

测试失败

现在我们知道我们可以运行测试了,让我们开始编写一些实际的测试代码。

写作测试

如何编写单元测试超出了本文的范围。如果您有兴趣了解如何使用 `unittest` 框架,可以查看他们的文档。

对于我们的示例,让我们使用这些测试:

从 Car 导入 unittest 导入 Car 类 TestCar(unittest.TestCase): def setUp(self): self.car = Car() class TestInit(TestCar): def test_initial_speed(self): self.assertEqual(self.car.speed, 0 ) def test_initial_odometer(self): self.assertEqual(self.car.odometer, 0) def test_initial_time(self): self.assertEqual(self.car.time, 0) class TestAccelerate(TestCar): def test_accelerate_from_zero(self): self .car.accelerate() self.assertEqual(self.car.speed, 5) def test_multiple_accelerates(self): for _ in range(3): self.car.accelerate() self.assertEqual(self.car.speed, 15 ) 类 TestBrake(TestCar): def test_brake_once(self): self.car.accelerate() self.car.brake() self.assertEqual(self.car.speed, 0) def test_multiple_brakes(self): for _ in range(5): self.car.accelerate() for _ in range(3): self.car.brake() self.assertEqual( self.car.speed, 10) def test_should_not_allow_negative_speed(self): self.car.brake() self.assertEqual(self.car.speed, 0) def test_multiple_brakes_at_zero(self): for _ in range(3): self.car .brake() self.assertEqual(self.car.speed, 0)self.car.brake() self.assertEqual(self.car.speed, 0) def test_multiple_brakes_at_zero(self): for _ in range(3): self.car.brake() self.assertEqual(self.car.speed, 0)self.car.brake() self.assertEqual(self.car.speed, 0) def test_multiple_brakes_at_zero(self): for _ in range(3): self.car.brake() self.assertEqual(self.car.speed, 0) 运行测试

现在通过右键单击类声明上方的编辑器背景来运行测试test_car。这次成功通过了一些测试:

运行单元测试调试测试

接下来,让我们更深入地研究测试代码并调试其中一个失败的测试。例如,我们将在以下位置放置一个断点:

测试断点

接下来,启动调试器会话。为此,请右键单击方法的编辑器背景并从上下文菜单中test_should_not_allow_negative_speed选择“调试启动调试器”,或单击导航栏中的 :

调试

我们已经在方法的self.car.brake()语句处放置了断点test_should_not_allow_negative_speed。让我们看看调试器的输出:

调试输出

单击踏入按钮跳过库类并进入类Car:

跳过图书馆

接下来,进入我的代码再次单击相同的按钮,并查看测试调试输出:

调试输出

它表明速度可以变成负数,这是不可能的。似乎在类的代码中需要进行一些额外的检查Car:

改变方法brake如下:

def 刹车(self): 如果 self.speed < 5: self.speed = 0 else: self.speed -= 5

现在让我们再次运行测试:

调试输出自动运行测试

在最后一段中,在修复了我们的代码之后,我们使用工具窗口图标重新运行了我们的测试。如果您想专注于您的代码,只是看看您何时解决了问题,PyCharm 可以自动为您运行测试。

单击运行工具栏自动运行测试上的按钮。然后,每次您在项目文件中输入更改时(就像之前所做的那样),测试将在没有您干预的情况下运行。

最后修改:2021 年 12 月 24 日 步骤 2. 调试您的第一个 Python 应用程序 步骤 4. 创建并运行您的第一个 Django 项目


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3