我需要能够将pytest的.cache目录的位置更改为env变量WORKSPACE。由于服务器权限超出我的控制范围,我遇到此错误,因为我的用户没有权限在运行测试的目录中写入:
py.error.EACCES: [Permission denied]: open('/path/to/restricted/directory/tests/.cache/v/cache/lastfailed', 'w')
有没有办法将.cache目录的路径设置为环境变量WORKSPACE?
答案 0 :(得分:23)
您可以通过禁用" cacheprovider"来阻止.cache/
的创建。插件:
py.test -p no:cacheprovider ...
答案 1 :(得分:7)
答案 2 :(得分:1)
自PyTest 3.2以来,应该有一个命令行选项来设置.cache
目录的位置:
https://docs.pytest.org/en/latest/customize.html#confval-cache_dir
但是,使用PyTest 3.2.5时,如果出现unrecognized option: --cache_dir
错误,则会失败。如果有人能够使这个工作,请说出来。
答案 3 :(得分:0)
没有在命令行上更改缓存目录的显式选项,但是可以使用-o
选项替代pytest.ini中的选项:
pytest -o cache_dir=$WORKSPACE ...
有关pytest --help
选项的更多信息,请参见-o
的输出。
此外,我使用pytest 3.7.1作为参考。
答案 4 :(得分:0)
从pytest 3.2开始,您可以在cache_dir
文件中指定pytest.ini
选项。
#pytest.ini
cache_dir = .my_cache_dir
如果您更喜欢使用命令行参数,则可以使用此开关:
pytest tests -o cache_dir=.my_cache_dir
-o
允许您指定(并覆盖)pytest.ini特定的配置作为命令行参数。