最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

1-Pytest全棧自動化測試指南- 運(yùn)行

2023-02-03 12:52 作者:親切浪子  | 我要投稿

? ?

??

? ? 通常,使用命令調(diào)用 pytest(有關(guān)調(diào)用 pytest 的其他方法,pytest請參見下文)。這將在名稱遵循表單的所有文件中或?在當(dāng)前目錄及其子目錄中執(zhí)行所有測試。更一般地說,pytest 遵循標(biāo)準(zhǔn)測試發(fā)現(xiàn)規(guī)則。test_*.py*_test.py、

指定要運(yùn)行的測試

Pytest 支持多種從命令行運(yùn)行和選擇測試的方法。

在模塊中運(yùn)行測試

pytest test_mod.py

在目錄中運(yùn)行測試

pytest testing/

通過關(guān)鍵字表達(dá)式運(yùn)行測試

pytest -k?"MyClass and not method"

這將運(yùn)行包含與給定字符串表達(dá)式匹配的名稱(不區(qū)分大小寫)的測試,其中可以包括使用文件名、類名和函數(shù)名作為變量的 Python 運(yùn)算符。上面的例子會運(yùn)行TestMyClass.test_something?,但不會TestMyClass.test_method_simple。

按節(jié)點(diǎn) ID 運(yùn)行測試

每個收集到的測試都被分配一個唯一的nodeid,它由模塊文件名和后面的說明符組成,如類名、函數(shù)名和參數(shù)化的參數(shù),用::字符分隔。

要在模塊中運(yùn)行特定測試:

pytest test_mod.py::test_func

在命令行中指定測試方法的另一個示例:

pytest test_mod.py::TestClass::test_method

通過標(biāo)記表達(dá)式運(yùn)行測試

pytest -m slow

將運(yùn)行所有用@pytest.mark.slow裝飾器裝飾的測試。

有關(guān)詳細(xì)信息,請參閱標(biāo)記。

從包運(yùn)行測試

pytest --pyargs pkg.testing

這將導(dǎo)入pkg.testing并使用其文件系統(tǒng)位置來查找和運(yùn)行測試。

獲取版本、選項名稱、環(huán)境變量的幫助

pytest --version?# shows where pytest was imported from

pytest --fixtures?# show available builtin function arguments

pytest -h | --help?# show help on command line and config file options

分析測試執(zhí)行持續(xù)時間

在 6.0 版中更改。

要獲得超過 1.0 秒的最慢 10 個測試持續(xù)時間的列表:

pytest --durations=10?--durations-min=1.0

默認(rèn)情況下,pytest 不會顯示太小(<0.005s)的測試持續(xù)時間,除非-vv在命令行上傳遞。

管理插件的加載

早期加載插件

-p您可以使用以下選項在命令行中顯式地提前加載插件(內(nèi)部和外部) :

pytest?-p?mypluginmodule

該選項接收一個name參數(shù),可以是:

  • 完整的模塊名稱,例如myproject.plugins.?這個帶點(diǎn)的名稱必須是可導(dǎo)入的。

  • 插件的入口點(diǎn)名稱。setuptools這是插件注冊時傳遞給的名稱。例如,要提前加載pytest-cov插件,您可以使用:

  • pytest?-p?pytest_cov

禁用插件

要在調(diào)用時禁用加載特定插件,請將該-p選項與前綴一起使用no:。

示例:要禁用加載doctest負(fù)責(zé)從文本文件執(zhí)行 doctest 測試的插件,請像這樣調(diào)用 pytest:

pytest -p no:doctest

調(diào)用 pytest 的其他方式

您可以從命令行通過 Python 解釋器調(diào)用測試:

python -m pytest [...]

這幾乎等同于?直接調(diào)用命令行腳本,只是調(diào)用 via還會將當(dāng)前目錄添加到.pytest?[...]pythonsys.path

從 Python 代碼調(diào)用 pytest?

retcode?=?pytest.main()


這就像您從命令行調(diào)用“pytest”一樣。它不會引發(fā)SystemExit而是返回退出代碼。您可以傳入選項和參數(shù):

retcode?=?pytest.main(["-x",?"mytestdir"])

您可以指定其他插件pytest.main:

# content of myinvoke.py

import?sys

import?pytest

class?MyPlugin:

? ? def?pytest_sessionfinish(self):

????? ? ?print("*** test run reporting finishing")


if?__name__?==?"__main__":

? ??sys.exit(pytest.main(["-qq"], plugins=[MyPlugin()]))


運(yùn)行它將顯示MyPlugin已添加并調(diào)用了它的鉤子:

$ python myinvoke.py

*** test run reporting finishing

筆記

調(diào)用pytest.main()將導(dǎo)致導(dǎo)入您的測試和它們導(dǎo)入的任何模塊。由于 python 導(dǎo)入系統(tǒng)的緩存機(jī)制,pytest.main()從同一進(jìn)程進(jìn)行后續(xù)調(diào)用不會反映調(diào)用之間對這些文件的更改。因此,pytest.main()不建議從同一進(jìn)程多次調(diào)用(例如,為了重新運(yùn)行測試)。

更多案例,更多內(nèi)容,請點(diǎn)擊

請加入同樂學(xué)堂:61672-7690(Q)

https://edu.csdn.net/course/detail/37237

https://edu.51cto.com/course/32569.html

1-Pytest全棧自動化測試指南- 運(yùn)行的評論 (共 條)

分享到微博請遵守國家法律
抚宁县| 佛冈县| 六安市| 新河县| 怀仁县| 定襄县| 沽源县| 鄂温| 壤塘县| 綦江县| 东阿县| 靖安县| 呼伦贝尔市| 怀仁县| 弋阳县| 元氏县| 沾益县| 南平市| 密云县| 荔浦县| 钟山县| 阿鲁科尔沁旗| 化隆| 新密市| 五峰| 桃源县| 阳曲县| 高州市| 曲沃县| 赫章县| 漳浦县| 留坝县| 两当县| 太仆寺旗| 建始县| 陇西县| 崇文区| 祁连县| 临泽县| 蕉岭县| 乐平市|