pytest的fixtures学习十一

参数化fixture(二)

在上一篇“十”中最后运行的结果可以看到,两个测试函数针对不同的smtp_connection实例分别运行了两次。同时注意:对于mail.python.org连接,第二个测试在test_ehlo中失败,因为期望的服务器字符串与到达的字符串不同。

pytest将为参数化的fixture中每个fixture值构建一个字符串作为测试ID,如上述test_ehlo[smtp.gmail.com]和test_ehlo[mail.python.org],这些IDs可以与-k一起使用,以选择要运行的特点场景,且当一个故障发生时,还将识别特定场景。使用--collect-only运行pytest将显示生成的ID。

数字、字符串、布尔值和None将在测试ID中使用通常的字符串表示形式。对于其他对象,pytest将根据参数名称创建一个字符串。通过使用ids关键字参数,可以为某个固定值自定义测试ID中使用的字符串:

官网示例

上面的代码显示了ids可以是要使用的字符串列表,也可是将使用fixture值调用后返回一个字符串来使用的函数。在后一种情况下,如果返回None,则将使用pytest自动生成的ID。

运行后产生以下测试ID:

官网示例


最近有点小忙,项目版本要上线,加油,坚持~

你可能感兴趣的:(pytest的fixtures学习十一)