pytest と xdist の次の奇妙な動作に気付いた人はいますか。
ランダムに選択された値でパラメータ化されたテストを実行しようとすると、テストは実際には実行されません。xdist を使用しない場合、同じテストが問題なく実行されます。
次のコードを使用して、これを再現できます。
import pytest
import random
PARAMS_NUMBER = 3
PARAMS = []
for i in range(PARAMS_NUMBER):
PARAMS.append(random.randrange(0, 1000))
@pytest.mark.parametrize('rand_par', PARAMS)
def test_random_param(rand_par):
assert 500 > rand_par
xdists がなくても問題なく動作します。
xdist を使用すると、テストはまったく実行されず、次の出力が表示されます
============================= test session starts =============================
platform win32 -- Python 2.7.3 -- py-1.4.24 -- pytest-2.6.2
plugins: xdist
gw0 [3] / gw1 [3] / gw2 [3] / gw3 [3]
scheduling tests via LoadScheduling
============================== in 1.93 seconds ===============================
私が使用しているバージョン:
- パイソン2.7.3
- pytest 2.6.2
- pytest-xdist 1.11
追記:
一部の古いバージョン (xdist 1.8 および pytest 2.4.X または 2.5.X は正確には覚えていません) では、xdist が dsession.py のアサーションで停止していました。
assert collection == col
それを解決する方法、または少なくとも回避する方法について、事前に感謝します:)