diff --git a/.github/workflows/run-CI.yml b/.github/workflows/run-CI.yml
new file mode 100644
index 0000000..3a8a72e
--- /dev/null
+++ b/.github/workflows/run-CI.yml
@@ -0,0 +1,41 @@
+name: Continuous-Integration
+
+on:
+ push:
+ branches:
+ - 'main'
+ pull_request:
+ branches:
+ - 'main'
+ workflow_dispatch:
+ inputs:
+ browserName:
+ description: 'Browser type'
+ required: false
+ type: environment
+
+jobs:
+ start-test:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Set up JDK 11
+ uses: actions/setup-java@v3
+ with:
+ java-version: '11'
+ distribution: 'temurin'
+
+ - name: Build with Maven
+ run: mvn clean
+
+ - name: Run tests
+ run: mvn verify
+
+ - uses: deblockt/cucumber-report-annotations-action@v1.7
+ with:
+ access-token: ${{ secrets.GITHUB_TOKEN }}
+ path: "**/cucumber-report.json"
+
+
diff --git a/pom.xml b/pom.xml
index 78aafc0..ac5dcb4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -85,6 +85,16 @@
3.24.2
test
+
+ io.qameta.allure
+ allure-cucumber7-jvm
+ test
+
+
+ io.qameta.allure
+ allure-junit-platform
+ test
+
@@ -93,7 +103,8 @@
maven-surefire-plugin
3.0.0-M4
- false
+ true
+ true
diff --git a/src/main/java/pom/pages/TodoListPage.java b/src/main/java/pom/pages/TodoListPage.java
index c847748..eadd713 100644
--- a/src/main/java/pom/pages/TodoListPage.java
+++ b/src/main/java/pom/pages/TodoListPage.java
@@ -4,11 +4,16 @@
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
+import java.util.List;
+
public class TodoListPage extends PageObject {
@FindBy(className = "new-todo")
private WebElement addItem;
+ @FindBy(id="list")
+ public List listOfSettings;
+
public void addTask(String item) {
addItem.sendKeys(item);
}
diff --git a/src/test/java/runners/cucumber/TodoListTestSuite.java b/src/test/java/runners/cucumber/TodoListTestSuite.java
index 3c2728d..24b77ca 100644
--- a/src/test/java/runners/cucumber/TodoListTestSuite.java
+++ b/src/test/java/runners/cucumber/TodoListTestSuite.java
@@ -6,9 +6,10 @@
@RunWith(CucumberWithSerenity.class)
@CucumberOptions(
- plugin = {"pretty"},
+ plugin = {"pretty", "html:target/cucumber-reports.html"},
features = "src/test/resources/features/todomvc/add_new_items.feature",
glue = "runners.cucumber.stepdefinitions",
snippets = CucumberOptions.SnippetType.CAMELCASE
+ ,tags = "@solo"
)
public class TodoListTestSuite {}
diff --git a/src/test/java/runners/cucumber/stepdefinitions/TodoStepDefinitions.java b/src/test/java/runners/cucumber/stepdefinitions/TodoStepDefinitions.java
index 323398f..1d3b216 100644
--- a/src/test/java/runners/cucumber/stepdefinitions/TodoStepDefinitions.java
+++ b/src/test/java/runners/cucumber/stepdefinitions/TodoStepDefinitions.java
@@ -1,23 +1,30 @@
package runners.cucumber.stepdefinitions;
+import io.cucumber.datatable.DataTable;
import io.cucumber.java.Before;
+import io.cucumber.java.DataTableType;
import io.cucumber.java.ParameterType;
+import io.cucumber.java.Transpose;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
-import net.serenitybdd.screenplay.*;
+import net.serenitybdd.screenplay.Actor;
import net.serenitybdd.screenplay.actions.Open;
import net.serenitybdd.screenplay.actors.OnStage;
import net.serenitybdd.screenplay.actors.OnlineCast;
-import net.serenitybdd.screenplay.conditions.ConditionalPerformable;
-import net.serenitybdd.screenplay.conditions.ConditionalPerformableOnQuestion;
-import org.hamcrest.Matcher;
-import org.hamcrest.Matchers;
+import org.assertj.core.api.SoftAssertions;
+import org.junit.jupiter.params.shadow.com.univocity.parsers.annotations.Convert;
+import org.openqa.selenium.WebElement;
+import pom.pages.TodoListPage;
+import screenplay.model.Label;
import screenplay.questions.todolist.Items;
-import screenplay.questions.travelocity.DepartureFlight;
import screenplay.tasks.todolist.AddAnItem;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
import static net.serenitybdd.screenplay.GivenWhenThen.seeThat;
import static net.serenitybdd.screenplay.actors.OnStage.theActorInTheSpotlight;
@@ -25,6 +32,8 @@
public class TodoStepDefinitions {
+ TodoListPage todoListPage;
+
@Before
public void setStage () {
OnStage.setTheStage(new OnlineCast());
@@ -41,7 +50,7 @@ public void stats_with_an_empty_list(Actor actor) {
);
}
- @When("he adds {string} to his list")
+ @When("he adds {} to his list")
public void he_adds_to_his_list(String toDo) {
theActorInTheSpotlight().attemptsTo(
AddAnItem.called(toDo));
@@ -54,4 +63,61 @@ public void the_todo_list_should_contain(List expectedItems) {
);
}
+ @Given("parameters are collected as map")
+ public void parametersAreCollectedAsMap(List