doctestモジュールを使用したPythonでのテスト
docstringを知っています Pythonの関数とクラスに関する追加情報を提供します。 doctestを使用した関数のテストにも使用できます。 モジュール。 doctest モジュールは>>>で始まるコードを実行し、期待される出力と比較します。
以下の手順に従って、doctest。で関数を記述します。
-
doctestをインポートします モジュール。
-
docstringを使用して関数を記述します。 docstring内に、同じ関数をテストするために次の2行を記述します。
-
>>> function_name(* args)。
-
期待される出力。
-
-
機能コードを記述します。
-
ここで、テストのためにdoctest.testmod(name =function_name、verbose =True)関数を呼び出します。詳細をFalseに設定し、すべてのテストに合格した場合、テスト結果を確認できません。 Trueに設定することをお勧めします。
例
doctestを使って簡単な関数を書いてみましょう。
# importing the module import doctest # function def numbers_sum(*args) -> int: """ This function returns the sum of all the argumets Shell commands for testing incoking the function followed by expected output: >>> numbers_sum(1, 2, 3, 4, 5) 15 >>> numbers_sum(6, 7, 8) 21 """ return sum(args) # invoking the testmod function doctest.testmod(name='numbers_sum', verbose=True)>
上記のコードを実行すると、次の結果が得られます。
Trying: numbers_sum(1, 2, 3, 4, 5) Expecting: 15 ok Trying: numbers_sum(6, 7, 8) Expecting: 21 ok 1 items had no tests: numbers_sum 1 items passed all tests: 2 tests in numbers_sum.numbers_sum 2 tests in 2 items. 2 passed and 0 failed. Test passed. TestResults(failed=0, attempted=2)
出力が表示されている場合は、各テストの後にokという単語があります。つまり、期待される出力と実際の出力が一致します。出力の最後でテスト結果を確認できます。
例
テストが失敗したときに何が起こるか見てみましょう。間違った出力で同じ例を実行します。
# importing the module import doctest # function def numbers_sum(*args) -> int: """ This function returns the sum of all the argumets Shell commands for testing incoking the function followed by expected output: >>> numbers_sum(1, 2, 3, 4, 5) 10 >>> numbers_sum(6, 7, 8) 23 """ return sum(args) # invoking the testmod function doctest.testmod(name='numbers_sum', verbose=True)>
出力
上記のプログラムを実行すると、次の結果が得られます。
Trying: numbers_sum(1, 2, 3, 4, 5) Expecting: 10 ********************************************************************** File "__main__", line 10, in numbers_sum.numbers_sum Failed example: numbers_sum(1, 2, 3, 4, 5) Expected: 10 Got: 15 Trying: numbers_sum(6, 7, 8) Expecting: 23 ********************************************************************** File "__main__", line 12, in numbers_sum.numbers_sum Failed example: numbers_sum(6, 7, 8) Expected: 23 Got: 21 1 items had no tests: numbers_sum ********************************************************************** 1 items had failures: 2 of 2 in numbers_sum.numbers_sum 2 tests in 2 items. 0 passed and 2 failed. ***Test Failed*** 2 failures. TestResults(failed=2, attempted=2)
テスト結果が表示された場合、2つは失敗しています。 予想されるを確認することもできます および実際の 出力に出力します。
結論
チュートリアルで疑問がある場合は、コメントセクションでそれらについて言及してください。
-
Unittestを使用したPythonでのユニットテスト
この記事では、Python 3.xで利用可能な単体テストモジュールを使用して、ソフトウェアテストの基本について学習します。またはそれ以前。 自動化、テストのセットアップコードと終了コードの共有、およびすべてのフレームワークの独立したテストが可能になります。 単体テストでは、さまざまなオブジェクト指向の概念を使用します。ここでは、主に使用されるいくつかの概念について説明します。 テストケース −これは、特定の入力セットに従った応答固有の基本クラスです。単体テストの基本クラス、つまり「 TestCase 」を使用して、この操作を実装します。 テストスイート −テストケースをまとめ
-
Pythonのissubset()関数
この記事では、Python標準ライブラリで利用可能なissubset()関数の実装と使用法について学習します。 issubset()メソッドは、セットのすべての要素が別のセットに存在する場合(引数として渡される場合)はブール値のTrueを返し、それ以外の場合はブール値のFalseを返します。 下の図では、BはAのサブセットです。AとBが同一のセットである場合、AはBの適切なサブセットであることを意味します。これは、両方のセットに同じ要素が含まれていることを意味します。 構文 <set 1>.issubset(<set 2>) 戻り値 boolean True/