当前位置: 首页 > 面试题库 >

如何查看行为(BDD)中的print()语句

慕容修伟
2023-03-14
问题内容

上下文:我正在将Python与行为(BDD)结合使用。

无论是从命令行(行为)还是从自定义main()运行测试,其行为都是相同的:测试运行,并且在控制台中看到的唯一输出是标准BDD报告。

我的测试包括print()语句,可帮助我调试代码。但是,当我运行行为时,这些打印语句均未显示在控制台输出中。

有什么方法可以 让我们的代码在代码中“表现”出来?

我的主要()

config = Configuration()
if not config.format:
    default_format = config.defaults["default_format"]
    config.format = [ default_format ]
    config.verbose = True
r = runner.Runner(config)
r.run()

if config.show_snippets and r.undefined_steps:
    print_undefined_step_snippets(r.undefined_steps)

我的test.feature文件:

Feature: My test feature with the Behave BDD
    Scenario: A simple test
    Given you are happy
    When someone says hi
    Then you smile

我的test_steps.py文件:

from behave import given, when, then, step, model

@given('you are happy')
def step_impl(context):
    pass

@when ('someone says {s}')
def step_impl(context, s):
    context.message = s
    print("THIS IS NEVER DISPLAYED IN THE CONSOLE")
    pass

@then ('you smile')
def step_impl(context):
        assert(context.message == "hi")

问题答案:

我花了更多时间阅读文档后才弄清楚。实际上很简单。缺省情况下,behave
显示任何输出(即,由使用print()),除非有在测试失败。要强制显示所有输出而不管测试结果(通过/失败)如何,您需要做的就是更改一些默认设置。最简单的方法是behave.ini在项目目录的根目录中创建一个名为的文件,并放置以下内容:

文档名称: behave.ini

[behave]
stderr_capture=False
stdout_capture=False

下次运行行为测试时,无论测试通过还是失败,您都将看到调试语句的所有输出。



 类似资料:
  • 我的test.feature文件: 我的test_steps.py文件:

  • 报表填充过程JasperPrint objects的输出可以使用内置的查看器组件查看,或打印,或导出为更流行的文档格式,如PDF,HTML,RTF,XLS,ODT,CSV或XML。 本章将讨论查看和打印Jasper文档,下一章将讨论导出,即“导出报告”。 查看报告 JasperReport提供了一个内置的查看器,用于以原始格式查看生成的报告。 它是一个基于swing的组件,其他Java应用程序可以

  • 问题内容: 我正在努力学习在PHP中使用mysqli编写预备语句,通常,如果我对查询有疑问,我只需将其回显到屏幕上,就可以看到第一步。 我如何用准备好的陈述来做到这一点? 替换变量后,我想查看SQL语句。 问题答案: 使用准备好的语句: 准备该语句时,它会发送到MySQL服务器 当您绑定变量+执行语句时,只有变量被发送到MySQL服务器 并且语句+绑定变量在MySQL服务器上执行-无需在每次执行语

  • spring.jpa.properties.hibernate.show_sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.use_sql_comments=true

  • 本文向大家介绍hibernate 中如何在控制台查看打印的 SQL 语句?相关面试题,主要包含被问及hibernate 中如何在控制台查看打印的 SQL 语句?时的应答技巧和注意事项,需要的朋友参考一下 在 Config 里面把 hibernate. show_SQL 设置为 true 就可以。但不建议开启,开启之后会降低程序的运行效率。

  • 我有一个包含6个表的数据库。这些表是在内容提供商和数据库助手的帮助下创建的。当我使用这6个表运行应用程序时,应用程序工作,所有表都被创建,我可以查询表并插入数据。 但是,当我尝试将sqlite视图添加到我的数据库助手的onCreate方法时,应用程序会崩溃。 据我所知,视图的onCreate方法是在视图的联接中使用的表onCreate方法之前被调用的,无论出于什么原因。 我需要知道的是如何强制我的