Ma structure de répertoire de projet est la suivante. Lorsque j'exécute le script à partir de package 1
, il crée des journaux dans le répertoire logs
mais lorsque je lance des tests, il ne peut pas être enregistré.Fichier de journalisation introuvable lors de l'exécution du répertoire de tests
/project
__init__.py
/flask_app
__init__.py
/scripts
__init__.py
logging.config.py
/package1
__init__.py
mypython.py
/logs
logging.log
/tests
__init__.py
test_mypython.py
mypython.py
Code:
self.logger = configure_logger('log_handler','../logs/logging.py')
Quand je courais le mypython.py des tests par émission d'une commande
py.test
Tout ce que je reçois la réponse est
[Errno 2] No such file or directory:
/home/mac/project/flask_app/logs/logging.log
qui est clairement w rong comme il essaie de trouver des tests chemin répertoire
Jusqu'à présent, j'ai essayé (mypython.py) en utilisant
log_file = pkg_resource.resource_filename(__name__, '../logs/logging.log')
self.logger = configure_logger('log_handler',log_file)
J'ai aussi essayé
package_dir = os.path.dirname(os.path.abspath(__file__))
log_file=os.path.join(os.path.dirname(__file__),'../logs/logging.log')
Aucun d'entre eux ne semble fonctionner. Si je change mon répertoire en mypackage1 puis exécute py.test
alors tout fonctionne. Je ne le veux pas car j'ai d'autres tests unitaires dans le répertoire des tests. Je suis très frustré maintenant. Appréciez si quelqu'un peut signaler ce qui ne va pas avec mon code. Je pensais que la ressource de package devrait résoudre. il est clair que non. Merci à l'avance
En fait, le problème a été résolu. en utilisant 'os.path.dirname (__ nom de fichier __), '.../log/logging.log)'. C'était l'un des fichiers où il ne l'avait pas mis à jour. Merci. J'ai incorporé votre suggestion de créer le fichier de logs qui manquait. –