PyCharm 2025.2 ヘルプ

Twisted によるテスト駆動開発

導入

ここでは、このアドレス(英語)にあるチュートリアル「Twisted によるテスト駆動開発」を参照し、PyCharm を使用してそれを繰り返してみます。

プロジェクト、パッケージ、Python ファイルの作成

ファイル | 新規プロジェクト ... に移動し、新規プロジェクトダイアログで純粋な Python プロジェクトの作成を選択します。それを Calculus と呼びましょう。

空の __init__.py ファイルを含む calculus という空のディレクトリを作成します。これを行うには、メインメニューでファイル | 新規 ... に移動し、新規ポップアップメニューから 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(Test-Driven Development)のアイデアがコードの前にテストを書いているため、実際のテストをしましょう:

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 for test_base_1.CalculationTestCase' を選択します。

予想どおり、すべてのテストは失敗しました。

test failed

プロジェクトツールウィンドウにはもう 1 つのディレクトリ(_trial_temp)が表示されます。これにはログファイルが含まれています:

log file

テストをパスする

テストするクラスを変更して、テストをパスしましょう。そのために、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 for test_base_1.CalculationTestCase' を選択します。今回はテストに合格します:

tests passed
2024 年 5 月 26 日