测试目录中运行时未找到日志文件

2024-05-20 08:36:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我的项目目录结构如下。当我从package 1运行脚本时,它会在logs目录中创建日志,但当我从测试运行时,它不能文件化。在

 /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代码:

^{pr2}$

当我运行我的python.py从测试中发出命令

   py.test

我得到的答复是

   [Errno 2] No such file or directory:
   /home/mac/project/flask_app/logs/logging.log

这显然是错误的,因为它试图从测试目录中找到路径

到目前为止我已经试过了(我的python.py)使用

log_file = pkg_resource.resource_filename(__name__, '../logs/logging.log')
self.logger = configure_logger('log_handler',log_file)

我也试过了

package_dir = os.path.dirname(os.path.abspath(__file__))
log_file=os.path.join(os.path.dirname(__file__),'../logs/logging.log')

他们似乎都不管用。如果我将目录改为mypackage1,然后运行py.test,那么一切都正常。我不想这样,因为我有其他单元测试在测试目录。我现在很沮丧。感谢有人能指出我的代码有什么问题。我认为包资源应该解决。显然没有。提前谢谢


Tags: pathpytest目录projectlogappflask
1条回答
网友
1楼 · 发布于 2024-05-20 08:36:49

使用与模块相关的路径配置日志记录(不指向当前目录):

self.logger = configure_logger('log_handler', os.path.dirname(__file__) + '/../logs/logging.py')

或者在使用相对路径配置日志记录之前创建logs目录:

^{pr2}$

相关问题 更多 >