簡體   English   中英

pytest - 調用 function 生成輸入以填充 pytest.mark.parametrize 的輸入以獲得所需的測試次數

[英]pytest - call a function that generates inputs to fill in inputs for pytest.mark.parametrize for desired number of tests

我有一個 function 可以為一個測試生成輸入,我想調用 function 隨機次數以使用@pytest.mark.parametrize

## part that generates inputs needed
import numpy as np

def generate_proper_list():
    return np.random.uniform(low=0.1, high=8.0, size=(np.random.randint(low=1,high=5,size=1)[0],4))

### I would like to run this test for desired number of time, like for 4 tests, 5 tests etc,. 
## by invoking above function to generate inputs for each test.
@pytest.mark.parametrize('rand_nums', <some-thing>)
def test_proper_random(rand_nums)
    payload = {'input':rand_nums}
    response = client.post(..., data=json.dumps(payload).encode('utf-8'),...)
    assert response.status_code == 200

我該怎么做呢?

夾具可用於為您的測試 function 提供隨機輸入數據,然后您想使用參數化來執行 function n次。

import numpy as np

@pytest.fixture
def random_input():
    return np.random.uniform(low=0.1, high=8.0, size=(np.random.randint(low=1,high=5,size=1)[0],4))


@pytest.mark.parametrize("n_times", range(5))
def test_proper_random(n_times, random_input)
    payload = {'input':random_input}
    response = client.post(..., data=json.dumps(payload).encode('utf-8'),...)
    assert response.status == 200

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM