PyCharm 2025.3 Help

使用 Twisted 进行测试驱动开发

介绍

这里我们将参考位于 此地址 的教程 "使用 Twisted 进行测试驱动开发",并尝试使用 PyCharm 重现它。

创建项目、包和 Python 文件

转到 文件 | 新建项目... ,在 新建项目 对话框中,选择创建纯 Python 项目。 将其命名为 Calculus

创建一个名为 calculus 的空目录,包含一个空的 __init__.py 文件。 为此,请在主菜单中转到 文件 | 新建 ... ,然后在弹出菜单 新建 中选择 Python 包

接下来,创建一个 Python 文件。 为此,再次在主菜单中转到 文件 | 新建... ,并在弹出菜单中选择 Python 文件。 该文件名为 base_1.py ,并会立即打开以供编辑。 输入以下代码:

class Calculation(object): def add(self, a, b): pass def subtract(self, a, b): pass def multiply(self, a, b): pass def divide(self, a, b): pass

接下来,右键点击包 calculus ,再次创建一个 Python 包 – 这次应将其命名为 test

安装软件包

要执行测试,必须安装 Twisted 软件包。 此外,如果您在 Windows 上工作,还需安装软件包 pypiwin32

在 PyCharm 中安装所需软件包最为方便:为此,请转到设置对话框并打开 Python | 解释器 页面。 在此页面的 软件包工具栏 部分,点击 ,并在 可用软件包 对话框中选择所需的软件包。 有关详细信息,请参阅 安装、卸载和升级软件包

选择所需的测试运行器

同样在 设置 对话框(Ctrl+Alt+S )中,在 工具 节点下,点击 集成工具 页面。

在此页面中,从 默认测试运行器 字段中的列表选择测试运行器 Twisted Trial

应用更改并关闭对话框。

创建一个失败的测试

在类声明旁边的文件 base_1.py 上点击鼠标右键,然后按 Ctrl+Shift+T ,或在上下文菜单中选择 转到 | 测试。 在 创建测试对话框 中,您需要对默认设置进行一些更改:

首先,点击 目标目录 字段旁的浏览按钮,并选择 test 软件包。

其次,在 测试文件名 字段中输入名称 test_base_1.py ,并在 测试类名 字段中输入名称 TestBase_1。 最后,选择所有方法 – 这样将包括被测类的所有方法的测试。

您应得到以下代码:

from unittest import TestCase class TestBase_1(TestCase): def test_add(self): self.fail() def test_subtract(self): self.fail() def test_divide(self): self.fail() def test_multiply(self): self.fail()

这是一个可运行的类,但我们要为 Twisted 编写测试... 让我们导入该软件包。 最终将得到以下代码:

from twisted.trial import unittest class TestBase_1(unittest.TestCase): def test_add(self): self.fail() def test_subtract(self): self.fail() def test_divide(self): self.fail() def test_multiply(self): self.fail()

由于 TDD(测试驱动开发)的理念是先写测试再写代码,让我们编写实际的测试:

from base_1 import Calculation from twisted.trial import unittest class CalculationTestCase(unittest.TestCase): def test_add(self): calc = Calculation() result = calc.add(3, 8) self.assertEqual(result, 11) def test_subtract(self): calc = Calculation() result = calc.subtract(7, 3) self.assertEqual(result, 4) def test_multiply(self): calc = Calculation() result = calc.multiply(12, 5) self.assertEqual(result, 60) def test_divide(self): calc = Calculation() result = calc.divide(12, 4) self.assertEqual(result, 3)

顺便看看项目工具窗口 – 它显示项目的结构。 此时,您有 4 个文件:

  • calculus/__init__.py

  • calculus/base_1.py

  • calculus/test/__init__.py

  • calculus/test/test_base_1.py

运行失败的测试

现在让我们运行此测试。 为此,打开测试文件 test_base_1.py 进行编辑,在编辑器背景上点击鼠标右键,并从上下文菜单中选择 运行 'Twisted Trial 针对 test_base_1.CalculationTestCase'

正如所料,所有测试均失败:

测试失败

请注意,项目工具窗口中出现了一个新目录 - _trial_temp 。 其中包含日志文件:

日志文件

使测试通过

让我们更改被测类,使测试通过。 为此,我们将更改 base_1.py 脚本。 文件代码如下所示:

class Calculation(object): def add(self, a, b): return a + b def subtract(self, a, b): return a - b def multiply(self, a, b): return a * b def divide(self, a, b): return a // b

让我们再次运行 test_base_1.py 。 为此,在编辑器背景上点击鼠标右键,然后选择 运行 'Twisted Trial 针对 test_base_1.CalculationTestCase'。 这次,测试通过:

测试通过
最后修改日期: 2025年 12月 2日