Je dois pouvoir modifier l'emplacement du répertoire .cache de pytest en variable env, WORKSPACE. En raison d'autorisations de serveur hors de mon contrôle, je rencontre cette erreur car mon utilisateur ne dispose pas de l'autorisation nécessaire pour écrire dans le répertoire à partir duquel les tests sont exécutés:
py.error.EACCES: [Permission denied]: open('/path/to/restricted/directory/tests/.cache/v/cache/lastfailed', 'w')
Est-il possible de définir le chemin d'accès du répertoire .cache à la variable d'environnement WORKSPACE?
Vous pouvez empêcher la création de .cache/
en désactivant le plug-in "cacheprovider":
py.test -p no:cacheprovider ...
Vous pouvez créer un fichier vide appelé pytest.ini
dans l’un des répertoires parents de votre test. Ce fichier deviendra la rootdir
dans laquelle le .cache
sera créé.
Voir https://pytest.org/latest/customize.html
Ce n'est pas idéal mais cela permet une certaine forme de personnalisation.
Depuis PyTest 3.2, il est supposé exister une option de ligne de commande permettant de définir l’emplacement du répertoire .cache
: https://docs.pytest.org/en/latest/customize.html#confval-cache_dir
Cependant, en utilisant PyTest 3.2.5, cela échoue pour moi avec une erreur unrecognized option: --cache_dir
. Si quelqu'un est capable de faire fonctionner cela, veuillez en parler.
Il n'y a pas d'option explicite pour changer le répertoire de cache sur la ligne de commande, mais il est possible de remplacer les options dans pytest.ini avec l'option -o
à la place:
pytest -o cache_dir=$WORKSPACE ...
Voir la sortie de pytest --help
pour plus d'informations sur l'option -o
.
Aussi, pour référence, j'utilise pytest 3.7.1.