Pytest插件:避免在参数化中重复参数

pytest-auto-parametrize的Python项目详细描述


这是拒绝的拉取请求的替代方法 #780pytest

安装

PyPI

python3 -m pip install pytest-auto-parametrize --user

用法

这是使用parametrized test而不使用此命令的示例 插件:

importpytesttestparams=[(1,2,3,4,5,6,7),(7,6,5,4,3,2,1),]@pytest.mark.parametrize('a, b, c, d, e, f, g',testparams)deftest_many_args(a,b,c,d,e,f,g):assertd==4

参数列表必须重复,这很烦人。

通过使用此插件,可以避免重复:

importpytesttestparams=[(1,2,3,4,5,6,7),(7,6,5,4,3,2,1),]@pytest.auto_parametrize(testparams)deftest_many_args(a,b,c,d,e,f,g):assertd==4

自动推导的参数必须在参数列表的开头,但是 之后可以使用任何其他参数,例如夹具:

importpytesttestparams=[(1,2,3,4,5,6,7),(7,6,5,4,3,2,1),]@pytest.fixturedefmyfixture():return4@pytest.auto_parametrize(testparams)deftest_many_args_and_fixture(a,b,c,d,e,f,g,myfixture):assertd-myfixture==0

限制

与装饰器@pytest.mark.parametrize(...)不同 @pytest.auto_parametrize(...)不能多次用于同一个 测试功能。它可以与一个或多个 @pytest.mark.parametrize(...),不过,只要“auto”参数是 在参数列表的开头。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android Studio中的Java错误,但不是Eclipse   java如何使用jsp更新数据库中的文件?   jsoup如何在java中从较大的子字符串中提取多个子字符串?   java RestFB:当页面的URI具有页面名称时,无法获取页面帖子   java可以让Maven做我们在ANT构建中正在做的事情。xml   java如何在JasperReports中动态包含来自Servlet的图像?   java在hibernate中用新集更新旧集   从导出为可运行的Java应用程序创建、解析和管理XML文件。jar文件   在Java中使用数组的基础知识   调试从JAVA程序调用的MATLAB函数   java实现了Iterable hands错误大小的备份   JAVA木卫一。FileNotFoundException:请求的资源不可用   java Android Spring 1.0.1使用基本身份验证删除   java如何使用com解析和对象在一个数字数组中的值。fasterxml。杰克逊。数据绑定。对象映射器   比较两个字符串时发生java NullPointerException