Skip to content

Commit eb711ab

Browse files
committed
Add screenshots after each test in the Allure reports
1 parent 9972ec0 commit eb711ab

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

src/test/java/com/serenitydojo/playwright/toolshop/catalog/AddToCartTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.microsoft.playwright.Page;
44
import com.microsoft.playwright.junit.UsePlaywright;
55
import com.serenitydojo.playwright.HeadlessChromeOptions;
6+
import com.serenitydojo.playwright.toolshop.fixtures.RecordsAllureScreenshots;
67
import com.serenitydojo.playwright.toolshop.catalog.pageobjects.*;
78
import io.qameta.allure.Feature;
89
import io.qameta.allure.Story;
@@ -16,7 +17,7 @@
1617
@DisplayName("Shopping Cart")
1718
@Feature("Shopping Cart")
1819
@UsePlaywright(HeadlessChromeOptions.class)
19-
public class AddToCartTest {
20+
public class AddToCartTest implements RecordsAllureScreenshots {
2021

2122
SearchComponent searchComponent;
2223
ProductList productList;

src/test/java/com/serenitydojo/playwright/toolshop/catalog/SearchForProductsTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.microsoft.playwright.Page;
44
import com.microsoft.playwright.junit.UsePlaywright;
55
import com.serenitydojo.playwright.HeadlessChromeOptions;
6+
import com.serenitydojo.playwright.toolshop.fixtures.RecordsAllureScreenshots;
67
import com.serenitydojo.playwright.toolshop.catalog.pageobjects.ProductList;
78
import com.serenitydojo.playwright.toolshop.catalog.pageobjects.SearchComponent;
89
import io.qameta.allure.Feature;
@@ -16,7 +17,7 @@
1617
@DisplayName("Searching for products")
1718
@Feature("Searching for products")
1819
@UsePlaywright(HeadlessChromeOptions.class)
19-
public class SearchForProductsTest {
20+
public class SearchForProductsTest implements RecordsAllureScreenshots {
2021

2122
@BeforeEach
2223
void openHomePage(Page page) {

src/test/java/com/serenitydojo/playwright/toolshop/contact/ContactFormTest.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66
import com.microsoft.playwright.junit.UsePlaywright;
77
import com.microsoft.playwright.options.AriaRole;
88
import com.serenitydojo.playwright.HeadlessChromeOptions;
9+
import com.serenitydojo.playwright.toolshop.fixtures.RecordsAllureScreenshots;
910
import com.serenitydojo.playwright.toolshop.catalog.pageobjects.NavBar;
10-
import com.serenitydojo.playwright.toolshop.fixtures.PlaywrightTestCase;
11-
import io.qameta.allure.Allure;
1211
import io.qameta.allure.Feature;
1312
import io.qameta.allure.Story;
1413
import org.assertj.core.api.Assertions;
@@ -25,7 +24,7 @@
2524
@DisplayName("Contact form")
2625
@Feature("Contact form")
2726
@UsePlaywright(HeadlessChromeOptions.class)
28-
public class ContactFormTest {
27+
public class ContactFormTest implements RecordsAllureScreenshots {
2928

3029
ContactForm contactForm;
3130
NavBar navigate;
@@ -50,7 +49,7 @@ void setupTrace(BrowserContext context) {
5049

5150
@AfterEach
5251
void recordTrace(TestInfo testInfo, BrowserContext context) {
53-
String traceName = testInfo.getDisplayName().replace(" ","-").toLowerCase();
52+
String traceName = testInfo.getDisplayName().replace(" ", "-").toLowerCase();
5453
context.tracing().stop(
5554
new Tracing.StopOptions()
5655
.setPath(Paths.get("target/trace-" + traceName + ".zip"))
@@ -131,4 +130,9 @@ void invalidEmailField(String invalidEmail, Page page) {
131130

132131
assertThat(page.getByRole(AriaRole.ALERT)).hasText("Email format is invalid");
133132
}
133+
134+
// @AfterEach
135+
// public void tearDown(Page page) {
136+
// Allure.addAttachment("End of Test Screenshot", new ByteArrayInputStream(page.screenshot()));
137+
// }
134138
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.serenitydojo.playwright.toolshop.fixtures;
2+
3+
import com.microsoft.playwright.Page;
4+
import io.qameta.allure.Allure;
5+
import org.junit.jupiter.api.AfterEach;
6+
7+
import java.io.ByteArrayInputStream;
8+
9+
public interface RecordsAllureScreenshots {
10+
@AfterEach
11+
default void tearDown(Page page) {
12+
Allure.addAttachment("End of Test Screenshot", new ByteArrayInputStream(page.screenshot()));
13+
}
14+
}

0 commit comments

Comments
 (0)