2016-01-16 22 views
8

pytestでどのように1つのファイルをテストしますか?私はオプションを無視し、ドキュメント内の "このファイルのみをテストする"オプションを見つけることができませんでした。pytestで単一ファイルをテストする方法

ideで異なるファイルテストを実行したいので、これはsetup.cfgの代わりにコマンドラインで実行することをお勧めします。スイート全体が長すぎます。

答えて

9

単にファイルに

py.test tests/unit/some_test_file.py

+0

[OK]を、これはpycharmがやっているように見えますが、それはまだ全体のスイートを実行しています。コマンドラインでpy.testを実行すると何らかの理由でsegfaultsが発生します。私はこれが元の質問の範囲外だと思うので、私はそれを働かせることができれば私はあなたの答えを受け入れるでしょう。 – simonzack

+1

setup.cfgの 'addopts'は、そこにパスが追加されていると問題を起こしているようです。 – simonzack

+0

@simonzack私はあなたがファイル内に存在する複数のテストケースの中から1つのテストケースを実行したいと思います。 試してみてください:py.test test_basic.py -k test_first ここにtest_firstは私のtest_basic.pyファイルにあるテストケースです。 –

7

よう

何かをパスしてpy.testを実行するこれは非常に単純です:

$ pytest -v /path/to/test_file.py 

-vフラグは冗長性を高めることです。あなたがそのファイル内の特定のテストを実行する場合:あなたは名前がパタパタに従うテストを実行したい場合は

$ pytest -v /path/to/test_file.py::test_name 

はあなたが使用することができます。

$ pytest -v -k "pattern_one or pattern_two" /path/to/test_file.py 
ます。また、テストをマーキングするオプションがあります

-mフラグを使用して、マークされたテストのサブセットを実行することができます。 run_these_pleaseでマークされたテストを実行するには

test_file.py

def test_number_one(): 
    """Docstring""" 
    assert 1 == 1 


@pytest.mark.run_these_please 
def test_number_two(): 
    """Docstring""" 
    assert [1] == [1] 

$ pytest -v -m run_these_please /path/to/test_file.py 
+0

何らかの理由で、 '-k'と' path/to/test.py :: test_method'が私のために働いていません。 –

+0

私は二重チェックして '-k'が' path/to/test.py :: test_method'のために –

+0

で動作するとエラーが発生しました >エラー:見つからない:/ home/namgivu/NN/code/myproject/tests/models/test_bill.py :: test_generate_for_today_normal_cycle ([Module]テスト/ models/test_billのいずれにも '/home/namgivu/NN/code/myproject/tests/models/test_bill.py::test_generate_for_today_normal_cycle'という名前はありません)。 py '>]) –

関連する問題