【问题标题】:sys.stderr lost executing odoo YML testsys.stderr 丢失执行 odoo YML 测试
【发布时间】:2016-07-30 18:37:27
【问题描述】:

我在 yml 测试运行期间在日志中收到此错误:

close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr

我认为某些异常可能没有得到妥善处理。

【问题讨论】:

  • 没有更多关于你的代码的细节我不能肯定地告诉你,但是:当 Python 正在清理在解释器关闭时仍然存在的对象时会发生这种情况,并且某些文件对象没有正确关闭,这发生在 之后 sys.stderr 已经关闭,因此无处报告错误。 (close 方法应该不可能失败,但遗憾的是,事实并非如此。)为避免这种情况,您需要确保在解释器关闭之前关闭所有由测试打开的文件;最简单的方法是使用 with 语句。
  • 似乎 sys.stderr 在 odoo 运行 YAML 测试的上下文中不可用。请注意,yaml 不是 python 文件,它们可以在 !python 标记中包含 python 代码。该代码通过python“eval”函数使用。我不知道 eval 如何处理 sys.stderr

标签: testing exception-handling openerp yaml


【解决方案1】:

我发现在 YML 测试中使用打印功能时会发生这种情况。

How to silence "sys.excepthook is missing" error?

记录的正确方法是使用记录器:

import logging
_logger = logging.getLogger('TEST')
_logger.info('log message')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多