Python 问题汇总
一. Python 环境问题
使用pytest 在terminal中执行脚本调用python3.9, 而使用pycharm 的virtualenv 执行脚本调用的是python3.10, 由于环境不一致,因此进行配置;
1. 安装pyenv 进行版本管理,当前安装的是python3.9.19, 目录为: /usr/local/Cellar/python@3.9/3.9.19
创建软链: ln -s /usr/local/Cellar/python@3.9/3.9.19/bin/python3.9 /usr/local/bin/python3
ln -s /usr/local/Cellar/python@3.9/3.9.19/bin/python3.9-config /usr/local/bin/python3-config
创建virtualenv: virtualenv Commenv -p /usr/local/bin/python3
2. 执行python 脚本运行ios app, 此时根目录下的conftest.py 文件仍然无法识别,会报错no module "appium.options",
此时重新安装appium-python-client, 若是提示错误,则先把testproject-python-sdk删除了,然后再运行python脚本即可;
3. test = obj() TypeError: test_ui_steps() missing 1 required positional argument: 'test_steps'
在pyrcharm 中直接执行pytest脚本会报上面的错误,而在terminal 中执行脚本则可以正常通过;
解决方法:
4. conftest.py 放置到根目录下,测试脚本放置到democase目录下,此时在terminal中执行democase下的测试脚本无法识别;
解决方法:
在项目根目录下添加pytest.ini文件,并执行测试case的目录等;
testpaths = ./democases
--datarootdir=/usr/local/Cellar/python@3.12/3.12.4
6. pyenv
安装指定的python版本, $ pyenv install 3.4.1
卸载指定的python 版本, pyenv uninstall x.x.x
全局版本切换:pyenv global 3.11.9
局部版本切换: pyenv local 3.11.9
7. 执行pytest 测试脚本,
test = obj() ^^^^^ TypeError: TestOpenMainPage.test_open_main() missing 2 required positional arguments: 'self' and 'page'
解决方法:
在项目根目录下添加pytest.ini文件及其内容即可;
8. 由于安装了pytest-log插件,在调用logging时会自动生成test_log.log文件,是因为pytest-log插件的__init__.py文件中定义了filename='test_log.log'内容