相关疑难解决方法(0)

PyDev unittesting:如何在"捕获的输出"中捕获记录到logging.Logger的文本

我正在使用PyDev进行Python应用程序的开发和单元测试.至于单元测试,一切都很好,除了没有内容记录到日志框架.PyDev的"捕获输出"未捕获记录器.

我已经将所有记录到标准输出的内容转发如下:

import sys
logger = logging.getLogger()
logger.level = logging.DEBUG
logger.addHandler(logging.StreamHandler(sys.stdout))
Run Code Online (Sandbox Code Playgroud)

然而,"捕获的输出"不会显示记录到记录器的东西.

这是一个示例unittest-script:test.py

import sys
import unittest
import logging

logger = logging.getLogger()
logger.level = logging.DEBUG
logger.addHandler(logging.StreamHandler(sys.stdout))

class TestCase(unittest.TestCase):
    def testSimpleMsg(self):
        print("AA")
        logging.getLogger().info("BB")
Run Code Online (Sandbox Code Playgroud)

控制台输出是:

Finding files... done.
Importing test modules ... done.

testSimpleMsg (itf.lowlevel.tests.hl7.TestCase) ... AA
2011-09-19 16:48:00,755 - root - INFO - BB
BB
ok

----------------------------------------------------------------------
Ran 1 test in 0.001s

OK
Run Code Online (Sandbox Code Playgroud)

但是测试的CAPTURED OUTPUT是:

======================== CAPTURED OUTPUT =========================
AA
Run Code Online (Sandbox Code Playgroud)

有人知道如何捕获logging.Logger在执行此测试期间记录到的所有内容吗?

python logging unit-testing pydev

52
推荐指数
5
解决办法
4万
查看次数

Pycharm单元测试交互式调试命令行不起作用

在调试单元测试时(通过pycharm测试运行器),可以打开交互式命令行,但(与调试常规脚本时不同)输入的命令不会产生任何输出.事实上,似乎stdout被捕获到某处,因为stderr按预期工作:

>>> print "a"
>>> import sys
>>> sys.stderr.write("moof")
moof
>>> sys.stdout.write("moof")
>>> sys.stderr.write("test")
test
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?我真的很喜欢交互式调试控制台,如果它在调试单元测试时表现良好也会很棒.

debugging unit-testing pycharm

42
推荐指数
1
解决办法
7588
查看次数

在PyCharm中进行单元测试时如何查看日志消息?

我确定这是一个简单的修复,但我想在运行单元测试时在PyCharm控制台中查看日志消息.我正在测试的模块有自己的记录器,通常我会设置一个根记录器来捕获某个级别的调试消息,并将其他日志传递给一个文件.但我无法弄清楚它如何与单元测试一起工作.

我正在使用unittest2模块,并使用PyCharm的自动测试发现(可能是基于鼻子,但我不知道).

我试过愚弄运行配置,但似乎没有一种简单的方法来做到这一点.

如果你们中的任何人在那里工作,那么PyCharm文档在这里也没有特别的帮助.


在编辑中:它似乎表明控制台捕获了关键级别的日志消息.我想知道是否有办法配置它来捕获调试级别的消息.


这篇文章(Pycharm单元测试交互式调试命令行不起作用)建议将-s选项添加到构建配置,这不会产生所需的结果.

python pycharm

18
推荐指数
1
解决办法
6686
查看次数

标签 统计

pycharm ×2

python ×2

unit-testing ×2

debugging ×1

logging ×1

pydev ×1