日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中test_在python中生成py.test测试

發布時間:2023/12/4 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中test_在python中生成py.test测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先問一下,然后一個解釋,如果你有興趣.

在py.test的上下文中,如何從一小組測試函數模板生成大量測試函數?

就像是:

models = [model1,model2,model3]

data_sets = [data1,data2,data3]

def generate_test_learn_parameter_function(model,data):

def this_test(model,data):

param = model.learn_parameters(data)

assert((param - model.param) < 0.1 )

return this_test

for model,data in zip(models,data_sets):

# how can py.test can see the results of this function?

generate_test_learn_parameter_function(model,data)

說明:

我正在努力進行單元測試.我編寫“科學”,因為我編寫的代碼,我認為在數學上是復雜的,但不是從編程的角度來看,那就是我可能有五個功能要測試.我來自“科學”意味著我是單元測試的新手,但已經說服了我的CS好友,這是“事情要做”.

我編寫的代碼需要一個模型結構,一些數據,并學習模型的參數.所以我的單元測試包括一堆模型結構和預生成的數據集,然后一組約5臺機器學習任務來完成每個結構數據.

所以如果我手工編寫這個,我需要每個模型每個任務一個測試.每次我想出一個新的模型,我需要復制和粘貼5個任務,改變我指向的酸洗結構數據.這對我來說感覺就像壞習慣.理想情況下,我想要的是5個模板函數,用于定義我的5個任務,然后只是為我指定的結構列表吐出測試函數.

Googling關于帶我到a)工廠或b)關閉,這兩個都增加了我的大腦,并建議我必須有一個更簡單的方法,因為這個問題必須經常由正規的程序員面對.那有沒有

編輯:所以這里是如何解決這個問題!

def pytest_generate_tests(metafunc):

if "model" in metafunc.funcargnames:

models = [model1,model2,model3]

for model in models:

metafunc.addcall(funcargs=dict(model=model))

def test_awesome(model):

assert model == "awesome"

這將對我的型號列表中的每個模型應用test_awesome測試!謝謝@dfichter!

(注意:該斷言總是通過,btw)

總結

以上是生活随笔為你收集整理的python中test_在python中生成py.test测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。