pytest:是pytest_sessionstart()和pytest_sessionfinish()有效钩子吗?

Ale*_*hko 4 pytest

pytest_sessionstart(session)pytest_sessionfinish(session)有效的钩子?它们没有在dev hook docs最新的hook文档中描述

它们和pytest_configure(config)/ 之间有什么区别pytest_unconfigure(config)

在文档中说:

pytest_configure(config)在解析命令行选项后调用.并且已加载所有插件和初始conftest文件.

pytest_unconfigure(config) 在退出测试过程之前调用.

会话是一样的吧?

谢谢!

hpk*_*k42 7

坏消息是sessionstart/configure的情况没有很好地指定.特别是Sessionstart没有太多文档记录,因为如果一个是xdist/distribution的话,语义会有所不同.人们可以区分这些情况,但这有点太复杂了.

好消息是pytest-2.3应该让事情变得更容易.如果使用scope ="session"定义@setup(很快将重命名为@fixture)函数,则可以实现一个在每个进程中调用一次的fixture,在该过程中执行测试.对于分布式测试,这意味着每个测试从站一次.对于单过程测试,它意味着整个测试运行一次.在任何一种情况下,如果你执行"--collectonly"运行,或"-h"或其他不涉及运行测试的选项,那么夹具功能根本不会执行.

希望这澄清一下.

  • 您如何确保(或控制)这些会话范围的装置执行的顺序?即使没有依赖于它的测试,该装置也会执行吗? (3认同)