PyCharm 2020.3 ヘルプ

ステップ 3: 最初の Python アプリケーションをテストする

最初のチュートリアルでは最初の Python アプリケーションを作成し、2 番目のチュートリアルではデバッグしました。それでは、いくつかのテストを行います。

テストランナーの選択

以前に nosetest(英語)pytest(英語)、または Twisted Trial (英語) を使用したことがある場合は、unittest(英語) を選択する必要があります。それがどのように行われるかについては、テストフレームワークの選択を参照してください。

Selecting a test runner

テストの作成

テストを作成する簡単な方法は、テストするクラスから PyCharm にテストをスタブ化させることです。これを行うには、Car.py を開き、クラスの名前を右クリックしてジャンプをポイントし、テストを選択する必要があります(または Ctrl+Shift+T を押すだけです)。

Go to test

新しいテストを作成することを提案するポップアップが表示されます。

Create a new test

OK、やってみましょう。私たちの車が加速しブレーキをかけることができるかどうかをテストするつもりのため、これらのチェックボックスを選択しましょう:

Create test dialog

新しい Python テストクラスが作成されます:

test class

テスト用に実行 / デバッグ構成を作成して実行できます。

Running a test from the context menu
ただし、デフォルトではテストが失敗することがわかります。

Failed test

テストを実行できることを知ったため、実際のテストコードを書き始めましょう。

テストの記述

単体テストの書き方は、この記事の範囲外です。`unittest` フレームワークの使用について学びたい場合は、彼らのドキュメントをチェックしてください(英語)

この例では、次のテストを使用します。

import unittest from Car import Car class 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) class 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)

テストの実行

次に、クラス test_car の宣言の上にあるエディターの背景を右クリックして、テストを実行します。今回はいくつかのテストが成功しました:

Run unittest

テストのデバッグ

次に、テストコードを詳しく見て、失敗したテストの 1 つをデバッグしてみましょう。例:次の場所にブレークポイントを設定します。

Test breakpoint

次に、デバッガーセッションを起動します。これを行うには、test_should_not_allow_negative_speed メソッドでエディターの背景を右クリックしてコンテキストメニューからデバッグを選択するか、ナビゲーションバーのStart debuggerをクリックします。

Debug

test_should_not_allow_negative_speed メソッドの self.car.brake() ステートメントにブレークポイントを設定しました。デバッガーの出力を見てみましょう:

Debugging output

Step into ボタンをクリックしてライブラリクラスをスキップし、クラス Car に進みます:

Skip the library

次に、同じStepping into my codeボタンをもう一度クリックして、テストデバッグ出力を確認します。

Debugging output

速度が負になる可能性があることを示しています。 Car クラスのコードでは、いくつかの追加チェックが必要になると思われます。

メソッド brake を次のように変更します。

def brake(self): if self.speed < 5: self.speed = 0 else: self.speed -= 5

ここでもう一度テストを実行してみましょう。

Debuggin output

自動的にテストを実行する

最後の段落では、コードを修正した後、Tool windowsアイコンを使用してテストを行いました。あなたのコードに集中したい場合は、課題を解決した時点で PyCharm が自動的にテストを実行できます。

実行ツールバーRun test automaticallyボタンをクリックします。その後、プロジェクトファイルに変更を入力するたびに(以前に行ったように)、ユーザーの介入なしにテストが実行されます。

関連ページ:

ステップ 1: 最初の Python プロジェクトを作成して実行する

始める前に :次の前提条件が満たされていることを確認してください。PyCharmCommunity または Professional を使用しています。Python 自体をインストールしました。macOS または Linux を使用している場合、コンピューターにはすでに Python がインストール...

ステップ 2: 最初の Python アプリケーションをデバッグする

問題の原因を突き止める :前のチュートリアルでCarスクリプトを作成して実行したことを覚えていますか? もう少し遊んで、関数を次のように修正しましょう。def average_speed(self): return self.odometer / self.timeスクリプトを始めるときに何が起こる...

テストフレームワークの選択

テストフレームワークを選択する設定 / 環境設定ダイアログを開き( を押します)、ノードツールでページPython 統合ツールをクリックします。このページで、デフォルトテストランナーフィールドをクリックします。希望のテストランナーを選択してください:選択したテストランナーが指定したインタープリターに...

テスト用の実行 / デバッグ構成を作成する

実行 / デバッグ構成を使用して、通常のアプリケーションの実行と同様の方法でテスト(テストケース、テストスイートなど)を実行できます。PyCharm は、テストをターゲットとして指定できる、テスト目的で特別な実行 / デバッグ構成を作成するためのフレームワークを提供します。セクション実行 / デバッ...

テストランナータブ

テストランナータブは、テストセッションの開始時に実行ツールウィンドウで開き、同じツールバーボタンを備えています。実行ツールバーは、実行ツールウィンドウのツールバーとほとんど同じですが、テスト固有のボタンを備えています。左側のペインには、現在の実行 / デバッグ構成内のすべてのテストのツリービューが表...

ステップ 4: 最初の Django プロジェクトを作成して実行する

始める前に :次の前提条件が満たされていることを確認してください。PyCharm バージョン 2016.1 以降を使用しています。それでも PyCharm をお持ちでない場合は、このページからダウンロードしてください。PyCharm をインストールするには、プラットフォームに応じて、指示に従ってくだ...