记录未在行为步骤中捕获

nnj*_*nja 7 python bdd logging python-behave

好吧,在我的environment.py文件中,我可以通过以下方式记录东西:

logging.basicConfig(level=logging.DEBUG, filename="example.log")

def before_feature(context, feature):
    logging.info("test logging")
Run Code Online (Sandbox Code Playgroud)

但当我在步骤文件中时,我无法执行日志记录:

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

@given("we have a step")
def step_impl(context):
    logger.debug("Test logging 2")
Run Code Online (Sandbox Code Playgroud)

步骤内的日志消息不会显示.我正在使用python行为模块.有任何想法吗?

我在运行行为时尝试启用和禁用logcapture,但它没有任何区别.

小智 6

默认情况下,行为倾向于在功能执行期间捕获日志,并且仅在失败的情况下显示它们。

要禁用此功能,您可以 log_capture=false 在beeve.ini中设置

或者,您可以使用--no-logcapture命令行选项

进一步阅读:Behave API 参考Behave LogCapture


zar*_*tra 5

对我有用的:

behave --no-capture --no-capture-stderr --no-logcapture
Run Code Online (Sandbox Code Playgroud)

并在environment.py中添加以下狙击:

    def after_step(context, step):
        print("")
Run Code Online (Sandbox Code Playgroud)

原因:我发现行为不会记录步骤的最后一个打印语句。所以我只是在之前的狙击的每个步骤之后添加了一个空的打印。

希望有帮助