2014-09-25 80 views

回答

1

感謝您的問題。

傾城的Java適配器無證功能 - Lifecycle listener

生命週期偵聽器使用Java SPI

解決你的問題只是下面的類添加到類路徑

public class EachStepScreenshoter extends LifecycleListener { 

    @Override 
    public void fire(StepStartedEvent event) { 
     takeScreenshot(); 
    } 

    @Override 
    public void fire(StepFinishedEvent event) { 
     takeScreenshot(); 
    } 

    @Attachment(value="A screenshot") 
    private byte[] takeScreenshot() { 
     //Return screenshot content 
    } 
} 
+0

謝謝! 非常酷的未來,但不工作。 我應該在pom.xml中做一些嘗試嗎? – VovecUdalec 2014-10-02 20:09:39

+1

將META-INF/services/ru.yandex.qatools.allure.experimental.LifecycleListener文件添加到您的偵聽器名稱的資源中。閱讀關於Java SPI的更多信息 – 2014-10-03 12:25:10

+0

只有一個問題 - 在步驟完成後,fire(StepFinishedEvent)正在運行*,屏幕截圖將附加到父步驟/測試 – 2014-10-03 12:26:29

0

沒有特別的解決方案。 Allure使用AspectJ攔截方法調用並檢查當前的註釋。如您所知,@Attachment可以使用任何返回byte []的方法進行註釋來獲取屏幕截圖。所以我會定義這樣的註釋方法,並在必要時調用它:

@Attachment(value="A screenshot") 
private byte[] takeScreenshot() { 
    //Return screenshot content 
} 

@Step 
private void myStep() { 
    takeScreenshot(); 
    //Step logic 
    takeScreenshot(); 
} 
相關問題