2017-08-17 50 views
10

Tôi muốn chạy tất cả các thử nghiệm pytest song song thay vì tuần tự.thử nghiệm chạy thử nghiệm song song song song

thiết lập hiện tại của tôi trông giống như:

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... 

tôi chạy thử nghiệm của tôi sử dụng pytest -v -s.

Kết quả là các thử nghiệm của tôi đang chạy tuần tự, mất rất nhiều thời gian vì một số người trong số họ chờ phản hồi từ các máy chủ từ xa (kiểm tra tích hợp).

Có cách chạy song song nào không?

+4

Điều này có vẻ là những gì bạn đang tìm kiếm: https://docs.pytest.org/en/3.0.1/xdist.html –

Trả lời

3

Bạn muốn pytest-xdist. Tôi nghĩ rằng Qxf2 giải thích nó khá tốt: Qxf2 on Pytest-Xdist

Dòng lệnh Linux của họ hơi quá dài đối với sở thích của tôi; Tôi sử dụng:

pytest -n <NUM> 

nơi <NUM> là số lượng lao động song song.

Các vấn đề liên quan