Java 我怎样才能将失败的黄瓜步骤截图准确地附在步骤中,而不是在拆卸部分?

Java 我怎样才能将失败的黄瓜步骤截图准确地附在步骤中,而不是在拆卸部分?,java,gradle,cucumber,allure,selenide,Java,Gradle,Cucumber,Allure,Selenide,我不能在诱惑步骤报告下添加失败黄瓜步骤的屏幕截图 我使用allure-cucumber4-jvm:2.12.1,cucumberjava:4.3.1,并尝试在失败的cucumber步骤下,将测试过的web应用程序的屏幕截图添加到allure报告中。所以我尝试使用cucumber的@AfterStep和@After注释,并在scenario.isFailed()条件下的注释方法中添加屏幕截图。但问题是,在分解部分的所有步骤之后都会添加屏幕截图。唯一的区别是@After方法只调用一次,而@After

我不能在诱惑步骤报告下添加失败黄瓜步骤的屏幕截图

我使用allure-cucumber4-jvm:2.12.1,cucumberjava:4.3.1,并尝试在失败的cucumber步骤下,将测试过的web应用程序的屏幕截图添加到allure报告中。所以我尝试使用cucumber的@AfterStep和@After注释,并在scenario.isFailed()条件下的注释方法中添加屏幕截图。但问题是,在分解部分的所有步骤之后都会添加屏幕截图。唯一的区别是@After方法只调用一次,而@After步骤方法由每个步骤调用

@AfterStep
public void addScreenshotOnFailed(Scenario scenario) throws IOException {
        if (scenario.isFailed()) {
            try {
                Allure.addAttachment("Failed step", new FileInputStream(Screenshots.takeScreenShotAsFile()));
            } catch (FileNotFoundException ignored) {}
        }
    }

我希望测试过的web应用程序的屏幕截图完全在失败的Cumber步骤下?但事实上,在所有的场景之后,我都将其放在了分解部分。我的想法是使用事件捕获步骤状态并嵌入屏幕截图。如果我是正确的,按照当前设计,当步骤失败时,AfterStep不会执行。所以我们必须在hook中使用AfterConfiguration

Ruby: 下面是ruby实现

AfterConfiguration do |scenario, config|
    config.on_event :test_step_finished do |event|
        if event.result.failed?
          # get screenshot
        end
    end
  end

检查有关诱惑实施的信息。

您是否尝试在步骤失败的步骤定义级别添加
allure.addAttachment
。在这种情况下,我需要在每个步骤定义中添加allure.addAttachment。我尽量避免这种情况……是的,我知道添加所有步骤都很乏味。但是,您可以确认它是否适用于单步定义。然后我们可以考虑扩展解决方案。是的,它从步骤开始工作。谢谢您的确认。现在让我想想如何扩展它。请检查并让我知道Java.Cucumber-JVM中可用的
AfterConfiguration
选项是否不支持AfterConfiguration挂钩。
AfterConfiguration do |scenario, config|
    config.on_event :test_step_finished do |event|
        if event.result.failed?
          # get screenshot
        end
    end
  end