2017-09-24 18 views
0

test_set.pyがpytest --keep-複製を実行しているpytestが-3.2.2重複テスト

def test_a(): 
    pass 

def test_b(): 
    pass 

def test_a(): 
    pass 

def test_a(): 
    pass 

が含まれてい

test::test_a PASSED 
test::test_b PASSED 

どのように私は実行することはできますを示すために、test_aのインスタンスを1つだけ実行test.py test_a(3回)を実行するtest.py?

答えて

2

ドキュメントで説明されているように、異なるディレクトリに同じ名前のファイルがある場合は、テストを実行する場合には--keep-duplicatesが便利です。

短い答えは、あなたがしたいことをすることができないということです。


長い答えは、変数がファイルに複数回定義されている場合、最後の定義は、すべての以前のものを上書きしていることです。これは、単純な変数のassigmenだけでなく、他のものに当てはまります。例えば

、次のコードでファイルhitchhiker.py持っている場合:

a_variable = 42 
[some code] 
a_variable = 'towel' 

を、あなたはそれをインポートし、a_variableは値'towel'を持つことになります。

def test_a(): 
    print('a1') 

def test_b(): 
    print('b') 

def test_a(): 
    print('a2') 

def test_a(): 
    print('a3') 

し、それを実行し、あなたが得る:あなたは、次のファイルにテストファイルを変更する場合

-> py.test test_a.py -s -v 
[...] 
collected 2 items 

test_a.py::test_b b 
PASSED 
test_a.py::test_a a3 
PASSED 

を使用すると、最後のファイルで定義された関数を見ることができるように実行されます。ファイルの最後に最初の関数を移動すると、a1が表示されます。

+0

ありがとうございました。私は、それぞれのテストが目的であり、別々に集めることができると思った。 --keep-duplicatesを使用します。 – mungayree

+0

'' py.test''はPythonインタプリタを使ってテストファイルを読み込むので、あなたが望むことができないと思います。 –

関連する問題