一、pytest.fixture 参数化的问题
@pytest.fixture()
def abc():
print("我是公共函数")
# 错误的调用方法
abc()
# 正确的调用方法
def test_case(abc):
assert 1 = 1
-
注意:这个公共文件一定不能命名错了,必须为 “conftest.py”
-
必须放到项目的根目录
二、pytest.ini 问题
- 我的是 Win 系统,ini 里面不能带中文,否则脚本会报错(Linux、Mac没有这个问题)
- 这是由于编码问题导致,如果必须要带中文怎么办?
- 解决办法①:将 ini 文件编码改为 ANSI
- 解决办法②:修改 pytest 读取 ini 部分的源码, 改成用 utf-8 编码读取
三、allure.attach 插入图片问题
@allure.feature("插入图片")
def test_img():
allure.attach("./data/1.png", name="这是一张图片", attachment_type=allure.attachment_type.PNG)
@allure.feature("插入图片")
def test_img():
allure.attach.file("./data/1.png", name="这是一张图片", attachment_type=allure.attachment_type.PNG)
四、dict.get(key) 与 dict[key] 有什么区别?
-
正常情况下这两者没有区别
-
如果key不存在,dict.get(key) 返回空值,dict[key] 直接报错
-
所有一般情况下建议用 dict.get(key) 取值
五、为什么用 open 的时候要带 with 关键字?
-
用 open 时不加 with 就必须使用 close 方法
f = open("1.txt")
print(f.readlines())
f.close()
-
用 open 时加 with 就不需要在加上 close 方法(其内部会自动调用)
with open("1.txt") as f:
print(f.readlines())
1 个赞
with 工作原理
(1)紧跟with后面的语句被求值后,返回对象的“–enter–()”方法被调用,这个方法的返回值将被赋值给as后面的变量;
(2)当with后面的代码块全部被执行完之后,将调用前面返回对象的“–exit–()”方法。