2016-05-20 7 views
12

私はPythonでpytestを使って単体テストを実行しようとしています。私はあるクラスとそのクラスの中にいくつかのメソッドを持つモジュールを書いていました。私はこのモジュールの単体テストを書きました(単純なassert文を使ってリストの等価性を確認しています)。次に、クラスからそのオブジェクトのメソッドを呼び出します。 test.pyとテストするスクリプトは同じフォルダにあります。 pytestを実行すると、「0個のアイテムを収集」します。pytestはエラーなしで終了しますが、 "0個のアイテムを集めました"

私はpytestを初めて利用していますが、サンプルを正常に実行できます。私はここで何が欠けていますか?

のWindows 7上のPythonのバージョン3.5.1とpytestバージョン2.8.1を実行している

マイtest.pyコード:

from sort_algos import Sorts 

def integer_sort_test(): 
    myobject1 = Sorts([-100,10,-10]) 
    assert myobject1.merge_sort() == [-101,-100,10] 

sort_algos.pyがクラスのソートを含むモジュールです。 merge_sortは、ソートの下にあるメソッドです。

+0

[mcve]を投稿してください。あなたが空の '.py'ファイルを置くと、結果として何が期待されますか? – Zulan

+0

ランダムメモリ - '.py'が実行可能な場合はスキップされます。それが存在するかどうかを確認し、実行不可能に変更するか、' pytest'に 'include executable'オプションがあるかどうかを確認します。 – dwanderson

+0

@ Zulan、サンプルコードを投稿に追加しました –

答えて

24

pytestは命名規則に従ってテストを収集します。デフォルトでは、テストを含むファイルにはtest_で始まる名前を付ける必要があり、テストで扱うファイル内の関数はすべてtest_で始まる必要があります。

テストファイルの名前をtest_sorts.pyに変更し、上記で指定した関数例の名前をtest_integer_sortと変更すると、自動的に収集されて実行されます。

あなたの欲求に合ったこのテスト収集行動can be changed。変更するには、configuration in pytestについて学習する必要があります。

+0

ありがとうございました! OMG、私はそれを実現したことはありません! –

+0

私はお手伝いできました。これを正解としてマークしてもよろしいですか?ありがとう! – cewing

+0

今私はできます! –

関連する問題