2017-08-17 14 views
10

すべての私のpytestテストを、逐次ではなく並列で実行したいと思います。pytest run tests parallel

のように私の現在の設定に見えます:私はpytest -v -sを使用して、私のテストを実行

class Test1(OtherClass): 
    @pytest.mark.parametrize("activity_name", ["activity1", "activity2"]) 
    @pytest.mark.flaky(reruns=1) 
    def test_1(self, activity_name, generate_test_id): 
    """ 
    """ 

     test_id = generate_random_test_id() 
     test_name = sys._getframe().f_code.co_name 

     result_triggers = self.proxy(test_name, generate_test_id, test_id, activity_name) 

     expected_items = ["response"] 
     validate_response("triggers", result_triggers, expected_items) 


    @pytest.mark.parametrize("activity_name", ["activity1", "activity2"]) 
    @pytest.mark.flaky(reruns=1) 
    def test_2(self, activity_name, generate_test_id): 
    """ 
    """ 

     #same idea... 

私のテストは順番に実行されていますが、そのうちのいくつかはリモートサーバーからの応答(統合テスト)を待つため時間がかかります。

pytestを並行して実行する方法はありますか?

+4

これはあなたが探しているようです:https://docs.pytest.org/ja/3.0.1/xdist.html –

答えて

3

あなたが欲しいのはpytest-xdistです。私はQxf2がそれをとてもうまく説明していると思う:Qxf2 on Pytest-Xdist

彼らのLinuxのコマンドラインは、私の好みにあまりにも冗長すぎる。私が使用します。<NUM>が並列労働者の数がある

pytest -n <NUM>