pytest 的fixture中如何定义全局变量和局部变量

在pytest的fixture中,可以使用request对象来定义全局变量和局部变量。

对于全局变量,可以将其定义在pytest的配置文件(如conftest.py)中,在该文件中创建一个fixture,并将全局变量作为该fixture的返回值。这样,其他测试用例或fixture可以通过依赖注入的方式来访问全局变量。

下面是一个示例,展示如何在pytest的fixture中定义全局变量:

 

在上面的示例中,global_variable是一个在整个测试会话中生效的fixture,它返回了一个全局变量my_variable。其他测试用例或fixture可以通过接收global_variable作为参数来访问该全局变量。

对于局部变量,可以使用request对象的function属性来定义。request.function属性提供了当前正在执行的测试函数的信息。

下面是一个示例,展示如何在pytest的fixture中定义局部变量:

 

在上面的示例中,local_variable是一个在每个测试函数中生效的fixture,它根据当前测试函数的名称动态生成一个局部变量my_variable。其他测试用例或fixture可以通过接收local_variable作为参数来访问该局部变量。

请注意,根据需要,您可以根据测试需求和作用域要求来调整fixture的scope属性(如sessionmoduleclassfunction等)。

posted @ 2023-10-21 21:59  sophietest  阅读(974)  评论(0)    收藏  举报