Pytestの.cacheディレクトリの場所をenv変数WORKSPACEに変更できるようにする必要があります。サーバーのアクセス許可が制御できないため、ユーザーにはテストの実行元のディレクトリに書き込むアクセス許可がないため、このエラーが発生します。
py.error.EACCES: [Permission denied]: open('/path/to/restricted/directory/tests/.cache/v/cache/lastfailed', 'w')
.cacheディレクトリのパスを環境変数WORKSPACEに設定する方法はありますか?
「cacheprovider」プラグインを無効にすることで、.cache/
の作成を防ぐことができます。
py.test -p no:cacheprovider ...
テストの親ディレクトリの1つにpytest.ini
という名前の空のファイルを作成できます。これは、.cache
が作成されるrootdir
になります。
https://pytest.org/latest/customize.html を参照してください
理想的ではありませんが、何らかの形でカスタマイズできます。
PyTest 3.2以降、.cache
ディレクトリの場所を設定するためのコマンドラインオプションがあるはずです: https://docs.pytest.org/en/latest/customize.html#confval -cache_dir
ただし、PyTest 3.2.5を使用すると、これはunrecognized option: --cache_dir
エラーで失敗します。誰かがこれを機能させることができるなら、声を上げてください。
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固有の構成を指定(およびオーバーライド)できます。
コマンドラインでキャッシュディレクトリを変更する明示的なオプションはありませんが、代わりに-o
オプションを使用してpytest.iniのオプションを上書きすることができます。
pytest -o cache_dir=$WORKSPACE ...
pytest --help
オプションの詳細については、-o
の出力を参照してください。
また、参考までにpytest3.7.1を使用しています。