fixture通过scope参数控制setup级别,setup作为用例之前前的操作,用例执行完之后那肯定也有teardown操作。这里用到fixture的teardown操作并不是独立的函数,用yield关键字呼唤teardown操作。
举个例子:

输出:

说明:yield
yield
在fixture
中起到了唤起teardown
的作用,同时也可以和return
一样返回值。
但yield
和return
的区别是:
return
执行完成,该函数终止;
yield
在返回结束后,后续的代码仍可执行。
yield 遇到异常
1、如果其中一个用例出现异常,不影响 yield 后面的 teardown 执行,运行结果互不影响,并且全部用例执行完之后,yield 呼唤 teardown操作。

输出

2、如果在setup就异常了,那么是不会去执行yield后面的teardown内容了

输出:
