如何仅在断言失败时使用python logger记录某些内容? @pytest.mark.usefixtures(“oneTimeSetUp”、“setUp”) 类BeyondTest(unittest.TestCase): log=cl.testLogger(logging.INFO) @pytest.fixture(autouse=True) def类设置(自我、一次性设置): self.ts=TestStatus(self.driver) self.bmf=bmf(self.driver) @pytest.mark.run(订单=1) def测试站点到csv(自我): self.bmf.imagelist() 第一列=[l[4]表示self.bmf.csvreader中的l] list_site_to_csv=[如果项目不在第一列,则self.bmf.full_列表中的项目对应项目] self.log.INFO(列出站点到csv) assert len(list_site_to_csv)

如何仅在断言失败时使用python logger记录某些内容? @pytest.mark.usefixtures(“oneTimeSetUp”、“setUp”) 类BeyondTest(unittest.TestCase): log=cl.testLogger(logging.INFO) @pytest.fixture(autouse=True) def类设置(自我、一次性设置): self.ts=TestStatus(self.driver) self.bmf=bmf(self.driver) @pytest.mark.run(订单=1) def测试站点到csv(自我): self.bmf.imagelist() 第一列=[l[4]表示self.bmf.csvreader中的l] list_site_to_csv=[如果项目不在第一列,则self.bmf.full_列表中的项目对应项目] self.log.INFO(列出站点到csv) assert len(list_site_to_csv),python,python-3.x,selenium-webdriver,logging,pytest,Python,Python 3.x,Selenium Webdriver,Logging,Pytest,assert接受第二个参数。例如: if assert len(list_site_to_csv)<=0: then self.log.INFO(list_site_to_csv) >>将站点列表到csv=['apples'] >>>断言未将站点列表到csv,失败。列表不是空的。{list_site_to_csv}' 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 断言者错误:它失败了。列表不是空的。[苹果] 在这种情况下,如果列表\u site\u to \u csv不

assert
接受第二个参数。例如:

if assert len(list_site_to_csv)<=0:
    then self.log.INFO(list_site_to_csv)
>>将站点列表到csv=['apples']
>>>断言未将站点列表到csv,失败。列表不是空的。{list_site_to_csv}'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
断言者错误:它失败了。列表不是空的。[苹果]
在这种情况下,如果
列表\u site\u to \u csv
不是空的,断言将弹出,并显示消息

注:


len(从站点列表到csv),你不只是想要一个if语句吗?您可以将断言放入
try
/
except
块中,以捕获异常、记录,然后引发异常。
if assert len(list_site_to_csv)<=0:
    then self.log.INFO(list_site_to_csv)
>>> list_site_to_csv = ['apples']
>>> assert not list_site_to_csv, f'It failed. List is not empty. {list_site_to_csv}'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError: It failed. List is not empty. ['apples']