unittest 可以写一个单例维护 driver, 例如用类变量, case 里面用这个单例返回的 driver, 用 atexit 注册一个 driver 的退出函数, 可以实现
或者单例维护的是 cookie/session 之类的校验值, 初始化时取出来存到类变量 (或外部存储,例如 redis/mysql) 后 driver 立即销毁, 这样 case 执行完就不用处理这个 driver 销毁
或者再极端点, 写一个小 service 来做处理获取及校验 cookie/session 的事, case 去这个 service 拿, 也可
fixture 可以设置 scope 为 session, 用 yield 实现退出
https://docs.pytest.org/en/latest/reference/fixtures.html#higher-scoped-fixtures-are-executed-first
unittest 好像没有,用 pytest 可以的,pytest 兼容 unittest,在 contest 文件写 fixture 吧
用 fixture 可以,也可以用 setup_module/teardown_module
unittest 的 setUpModule tearDownModule 是模块级别的,我希望执行所有模块前登录,执行后,再退出
pytest 才是正解, 早晚都要用的
unittest 可以写一个单例维护 driver, 例如用类变量, case 里面用这个单例返回的 driver, 用 atexit 注册一个 driver 的退出函数, 可以实现
或者单例维护的是 cookie/session 之类的校验值, 初始化时取出来存到类变量 (或外部存储,例如 redis/mysql) 后 driver 立即销毁, 这样 case 执行完就不用处理这个 driver 销毁
或者再极端点, 写一个小 service 来做处理获取及校验 cookie/session 的事, case 去这个 service 拿, 也可
感觉楼主有点矛盾啊,标题是想用 fixture,但是又不考虑 pytest, 所以是 unittest 里面可以支持 fixture 吗?
其实 unittest 转化成 pytest 还是很快的,不知道楼主是基于什么原因,一点都不考虑 pytest 呢?
去看看seldom吧
楼主用 的是 unittest 吗?可以仿写一个类似 pytest 的 fixture。
统一回复下,组内使用 unittest,也想源码理解下 unittest 的运行机制,故不考虑 pytest
昨日同事提的建议,新建两个.py,均继承 TestCase,一个.py 中 setUpClass 执行登录,另一个 tearDownClass 执行退出,其他的 TestCase 里面不执行登录和退出
通过命名,控制这两个.py 的执行顺序来达到目的
利用多线程,登录一个线程,case 一个线程。登录线程在登录完后 waite,直到 case 线程运行完 case,case 线程设置 set,登录线程在根据 set 去执行退出的操作。不知道这个思路可否