作者Talent14 (Talent)
看板Python
标题[问题] pytest多层呼叫时,missing 1 required p
时间Fri Mar 19 14:47:13 2021
在pytest中,自定义的传入参数想在其他python档案使用,需要将conftest.py中接收参数的method name当作参数传入,如程式码中的common_method(self, test_var)
但如果common_method又会被其他python档案中的function呼叫,该怎麽处理第一个参数呢?
EX: test_demo.py档案中想要使用CommonModule().common_method(),会需要传入参数test_var,但common_method中的test_var是为了接收自订传入参数
在类似这样两层呼叫的方式下,怎麽使用接收进来的参数,才能解决 TypeError: common_module() missing 1 required positional argument: 'test_var'
附上程式码图档,先感谢各位高手大大
https://i.imgur.com/aqymMDO.jpg
-----
Sent from JPTT on my iPhone
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.83.131.117 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1616136435.A.E7B.html
1F:→ zerof: 你确定问题不是 method 少了个 self? 03/19 20:21
2F:→ Talent14: 抱歉,我范例漏打了,但确定补上後,test_case1(self)是 03/19 20:42
3F:→ Talent14: 不行的! 03/19 20:42
4F:→ Talent14: 抱错的原因会显示最後一行的common_module呼叫时缺少参 03/19 20:42
5F:→ Talent14: 数 03/19 20:42
6F:→ zerof: ??? 所以你是想把class CM 当成 fixture? 03/21 17:52
7F:→ Talent14: 我是想将pytest指令接收的参数在A method中被使用,但其 03/21 22:23
8F:→ Talent14: 他的B method也可以呼叫A method! 03/21 22:23
9F:→ Talent14: (A method是一个共用的方法,可以让其他method呼叫使用 03/21 22:23
10F:→ Talent14: ) 03/21 22:23
11F:→ Talent14: 以例子来说,是将test_var当作fixture, 提供给Common_Mo 03/21 22:31
12F:→ Talent14: dule cls的method使用,然後TestDemo cls的method会需要 03/21 22:31
13F:→ Talent14: 呼叫Common_Module cls的method 03/21 22:31
14F:→ zerof: ...如果你 CM 是 test fixture, pytest 没有也不建议你把 f 03/22 19:03
15F:→ zerof: ixture 绑在 class 上;如果 CM 是 test cases 的内容,放 03/22 19:03
16F:→ zerof: 在 setup 每次 re-initial(or maybe u are looking: unitte 03/22 19:03
17F:→ zerof: st?); 要是 CM 是待测物,那显然你上面应该都看不懂...要 03/22 19:03
18F:→ zerof: 不先去研究看看 test doubles? 03/22 19:03
19F:→ Talent14: CM不是待测物,CM是我拿来做login的动作(例:输入帐号 03/22 19:29
20F:→ Talent14: 密码,点击登入按钮、检查登入是否成功动作),但不将他 03/22 19:29
21F:→ Talent14: 当作一个test case,因为很多test case都会呼叫CM做前置 03/22 19:29
22F:→ Talent14: 动作! 03/22 19:29
23F:→ Talent14: 但是开启的url是由pytest命令参数决定,所以有点不知道 03/22 19:29
24F:→ Talent14: 该怎麽把这些东西串接起来! 03/22 19:29
25F:→ Talent14: 目前想到另一个方式是将url参数接收进来後放到os的环境 03/22 19:29
26F:→ Talent14: 变数,在login的时候去取用! 03/22 19:29
27F:→ Talent14: 谢谢大大提供的资讯,double test我也会去研究! 03/22 19:29