PyCharm 2020.1ヘルプ

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

Remember, in the first tutorial you’ve created your first Python application, and in the second tutorial you’ve debugged it. Now it’s time to do some testing.

テストランナーの選択

If you used nosetest(英語), py.test(英語) , or Twisted Trial(英語) before, you have to choose unittest(英語). To learn how it's done, see テストフレームワークの選択

Selecting a test runner

テストの作成

A quick way to create tests is to have PyCharm stub them out from the class we’d like to test. To do this, we need to open Car.py , then right-click the editor background, point to ジャンプ , and then choose テスト (or just press Ctrl+Shift+T ):

Go to test

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

Create a new test

OK, let’s do it. We are going to test whether our car is able to accelerate and brake, so let's select those checkboxes:

Create test dialog

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

test class

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

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

Failed test

Now we know that we can run tests, let’s start writing some actual test code.

テストの記述

How to write unit tests is out of scope for this article. If you’re interested in learning about using the `unittest` framework, you can check out their docs(英語).

For our example let’s use these tests:

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

Next, click the same Stepping into my code button again, and see the test debug output:

Debugging output

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

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

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

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

Debuggin output

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

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

Click the Run test automatically button on the 実行ツールバー . Then, every time you enter changes in your project files (as it was done earlier), the tests will run without any intervention from you.

最終更新日: 2020年5月08日

関連ページ:

ステップ 1. 最初のPythonプロジェクトを作成して実行する-ヘルプ| PyCharm

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

ステップ 2. 最初のPythonアプリケーションをデバッグする-ヘルプ| PyCharm

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

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

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

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

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

テストランナータブ

テストセッションが開始されると実行ツールウィンドウにテスト・ランナータブが開き、同じツールバーボタンが表示されます。実行ツールバーは、実行ツールウィンドウのツールバーとほぼ同じですが、テスト固有のボタンがあります。左側のペインには、現在の実行/デバッグ構成内のすべてのテストのツリービューが表示されま...

ステップ 4. 最初のDjangoプロジェクトを作成して実行する-ヘルプ| PyCharm

始める前に:次の前提条件が満たされていることを確認してください。You are working with PyCharm version 2016.1 or later. If you still do not have PyCharm, download it fromthis page. To