pytest,fixture的scope申明为session后,测试期间被调用了多次

这是我定义的fixture,整个测试启动运行的方法

img

运行期间有三个test.py需要跑

img

这是我的运行结果,我定义为session的方法被调用了三次,也就是一个test.py调用了一次fixture

img

想了下也没毛病,但越想越不对!明明把fixtrue声明为session后,只会在整个测试开始的时候调用一次,这是什么情况?大伙们支个招呗

有没有一种可能,蓝色框里的文件名应该叫conftest.py

img

当 fixture 声明为 session 级别时,这意味着该 fixture 只会在整个测试会话中被执行一次。这也就是说,它不会在每个单独的测试函数中调用,而是在整个测试会话开始前调用一次。这对于需要在多个测试函数间共享的初始化操作很有用,因为它可以避免重复的设置和初始化

如果声明为 session 级别的 fixture 在整个测试会话开始时被多次调用,通常是因为在多个测试模块中都有使用该 fixture 的情况。这将导致 fixture 被多次调用。如果 fixture 的实现是不可重复的,那么多次调用它可能会导致问题。在这种情况下,可以考虑在各个测试模块中分别声明该 fixture。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^