【问题标题】:Custom messages in logging for failing tests with Geb/Spock?使用 Geb/Spock 记录失败测试的自定义消息?
【发布时间】:2017-06-25 19:46:52
【问题描述】:

我正忙于在 Geb/Spock 中进行 e2e 测试,我想知道如何添加自定义消息。 现在我只得到这样的堆栈跟踪:

geb.error.RequiredPageContentNotPresent: The required page content 'pages.patientConversation.PcModal -> contact: geb.navigator.EmptyNavigator' is not present
    at geb.content.TemplateDerivedPageContent.require(TemplateDerivedPageContent.groovy:60)
    at geb.content.PageContentTemplate.create_closure1(PageContentTemplate.groovy:63)
    at geb.content.PageContentTemplate.create_closure1(PageContentTemplate.groovy)

等等……

这是我的测试示例:

 def "allow for searching contacts"() {
    when:
    to LoginPage
    login(emailAddress, defaultPassword)
    then:
    at QuickBar
    when:
    startButton.click()
    then:
    at Modal
    when:
    selectContactButton.click()
    contactSearchField.value(context.pcUser2.surname)
    then: "the contact is shown in the search results"
    contact.isDisplayed()
}

我认为错误消息中会出现“联系人显示在搜索结果中”的文本,但显然没有。在 Geb of Spock 中是否有其他方式可以打印自定义消息以提高清晰度?

特别是对于'at checkers',我希望有自定义消息,因为当 at 检查失败时,您只会得到:

java.lang.NoSuchMethodError: geb.error.GebAssertionError.<init>(Ljava/lang/Object;Ljava/lang/Throwable;)V

at geb.waiting.WaitTimeoutException.<init>

编辑: 嗯,我现在意识到,测试失败了,因为它还在执行“then”之前检查所需的页面内容。我仍然希望能够添加自定义消息(特别是对于'at checkers')......有人知道这是否可能吗?

【问题讨论】:

    标签: spock geb


    【解决方案1】:

    您可以使用custom-messageWaitTimeoutException 添加自定义消息

    class HomePage extends Page {
    
        static at = {
            waitFor(message:"My custom message")    {title == "Acme Corporation"}
            waitFor(message:"My custom message",20) {$("#roadRunner")}
        }
    }
    

    【讨论】:

    • 谢谢!当我想为常规的“a == b”内容提供自定义消息时?这可能更像是一个 Spock 问题。
    • 您可以使用断言消息then: assert a == b : "My custome message"
    • 谢谢。糟糕的是,在这种情况下你仍然需要“断言”,因为我认为 Spock 的力量是隐式断言
    • Hmmmmm 虽然它仍然不起作用......当我故意犯错误时(例如不存在的 id),它只显示 NoSuchMethodError ...
    • 你试过assert $("#id").isDisplayed() : "My custome message"
    猜你喜欢
    • 1970-01-01
    • 2021-05-19
    • 2014-10-19
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多