Skip to content

Commit 1d4680a

Browse files
author
Pavel Anihimovsky
committed
Update structure
1 parent eb8f0b5 commit 1d4680a

File tree

24 files changed

+122
-77
lines changed

24 files changed

+122
-77
lines changed

README.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,24 @@ Template for [aquality-selenium-java](https://github.com/aquality-automation/aqu
77

88
### Project structure
99

10-
- **src/test/java/aquality/selenium/template/**
11-
- **configuration/**: classes that used to fetch project config from [src/test/resources/environment](./src/test/resources/environment) folder
12-
- **models/**: classes that represent data models of the application under the test (POJO classes)
10+
- *aquality-selenium-template* - project related part with PageObjects, models and utilities
11+
- **configuration/**: classes that used to fetch project config from [src/test/resources/environment](./aqulity-selenium-template/src/main/resources/environment) folder
1312
- **forms/**: Page Objects
14-
- **glue/**
15-
- **hooks/**: Cucumber [hooks](https://cucumber.io/docs/cucumber/api/#hooks)
16-
- **stepdefinitions/**: step definition classes
17-
- **transformations/**: Cucumber [data transformations](https://cucumber.io/docs/cucumber/configuration/)
13+
- **models/**: classes that represent data models of the application under the test (POJO classes)
14+
- **utilities/**: util classes
15+
- **src/test/resources/**: resource files such as configurations and test data
16+
- *aquality-selenium-template-cucumber* - Cucumber implementation of tests
1817
- **features/**: Cucumber feature files with test scenarios
18+
- **hooks/**: Cucumber [hooks](https://cucumber.io/docs/cucumber/api/#hooks)
1919
- **runners/**: Cucumber test runners
20-
- **src/test/resources/**: resource files such as configurations and test data
20+
- **stepdefinitions/**: step definition classes
21+
- **transformations/**: Cucumber [data transformations](https://cucumber.io/docs/cucumber/configuration/)
2122

2223
### Configuration
2324

24-
[settings.json](./src/test/resources/settings.json) file contains settings of Aquality Selenium library. Additional information you can find [here](https://github.com/aquality-automation/aquality-selenium-java/blob/master/Documentation.en.md).
25+
[settings.json](./aqulity-selenium-template/src/main/resources/settings.json) file contains settings of Aquality Selenium library. Additional information you can find [here](https://github.com/aquality-automation/aquality-selenium-java/blob/master/Documentation.en.md).
2526

26-
[allure.properties](./src/test/resources/allure.properties) is a part of Allure Report configuration. See details [here](https://docs.qameta.io/allure/).
27+
[allure.properties](./aqulity-selenium-template/src/main/resources/allure.properties) is a part of Allure Report configuration. See details [here](https://docs.qameta.io/allure/).
2728

2829
### Tests execution
2930

@@ -32,6 +33,6 @@ or with Maven command ```mvn clean test``` where you can specify all necessary a
3233

3334
### Reporting
3435

35-
Allure Framework is used as a reporting tool. Report data will be places in ```target/allure-results/``` folder (you can change it in [allure.properties](./src/test/resources/allure.properties) file).
36+
Allure Framework is used as a reporting tool. Report data will be places in ```target/allure-results/``` folder (you can change it in [allure.properties](./aqulity-selenium-template/src/main/resources/allure.properties) file).
3637

3738
Run maven command ```mvn allure:serve``` to build and open report in web browser.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<parent>
8+
<artifactId>aquality-selenium-template-project</artifactId>
9+
<groupId>com.github.aquality-automation</groupId>
10+
<version>1.0-SNAPSHOT</version>
11+
</parent>
12+
13+
<artifactId>aquality-selenium-template-cucumber</artifactId>
14+
15+
<properties>
16+
<cucumber.version>4.8.1</cucumber.version>
17+
</properties>
18+
19+
<dependencies>
20+
<dependency>
21+
<groupId>com.github.aquality-automation</groupId>
22+
<artifactId>aquality-selenium-template</artifactId>
23+
<version>1.0-SNAPSHOT</version>
24+
<scope>test</scope>
25+
</dependency>
26+
27+
<dependency>
28+
<groupId>io.cucumber</groupId>
29+
<artifactId>cucumber-testng</artifactId>
30+
<version>${cucumber.version}</version>
31+
</dependency>
32+
33+
<dependency>
34+
<groupId>io.cucumber</groupId>
35+
<artifactId>cucumber-java</artifactId>
36+
<version>${cucumber.version}</version>
37+
</dependency>
38+
</dependencies>
39+
40+
</project>

src/test/java/aquality/selenium/template/glue/hooks/BrowserHooks.java renamed to aquality-selenium-template-cucumber/src/test/java/aquality/selenium/template/cucumber/hooks/BrowserHooks.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package aquality.selenium.template.glue.hooks;
1+
package aquality.selenium.template.cucumber.hooks;
22

33
import aquality.selenium.browser.AqualityServices;
44
import io.cucumber.java.After;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package aquality.selenium.template.cucumber.hooks;
2+
3+
import aquality.selenium.template.utilities.ScreenshotProvider;
4+
import io.cucumber.core.api.Scenario;
5+
import io.cucumber.java.After;
6+
7+
public class ScreenshotHooks {
8+
9+
@After(order = 1)
10+
public void takeScreenshot(Scenario scenario) {
11+
if (scenario.isFailed()) {
12+
ScreenshotProvider screenshotProvider = new ScreenshotProvider();
13+
scenario.embed(screenshotProvider.takeScreenshot(), "image/png");
14+
}
15+
}
16+
}

src/test/java/aquality/selenium/template/runners/TestRunner.java renamed to aquality-selenium-template-cucumber/src/test/java/aquality/selenium/template/cucumber/runners/TestRunner.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
package aquality.selenium.template.runners;
1+
package aquality.selenium.template.cucumber.runners;
22

33
import io.cucumber.testng.AbstractTestNGCucumberTests;
44
import io.cucumber.testng.CucumberOptions;
55
import org.testng.annotations.DataProvider;
66

77
@CucumberOptions(
8-
features = {"src/test/java/aquality/selenium/template/features"},
9-
glue = {"aquality.selenium.template.glue"},
8+
features = {"src/test/java/aquality/selenium/template/cucumber/features"},
9+
glue = {
10+
"aquality.selenium.template.cucumber.hooks",
11+
"aquality.selenium.template.cucumber.transformations",
12+
"aquality.selenium.template.cucumber.stepdefinitions"
13+
},
1014
plugin = {"io.qameta.allure.cucumber4jvm.AllureCucumber4Jvm"}
1115
)
1216
public class TestRunner extends AbstractTestNGCucumberTests {

src/test/java/aquality/selenium/template/glue/stepdefinitions/DemoSteps.java renamed to aquality-selenium-template-cucumber/src/test/java/aquality/selenium/template/cucumber/stepdefinitions/DemoSteps.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package aquality.selenium.template.glue.stepdefinitions;
1+
package aquality.selenium.template.cucumber.stepdefinitions;
22

33
import aquality.selenium.browser.AqualityServices;
44
import aquality.selenium.template.configuration.Configuration;
@@ -21,7 +21,7 @@ public class DemoSteps {
2121

2222
@Given("Main page is opened")
2323
public void mainPageIsOpened() {
24-
AqualityServices.getBrowser().goTo(Configuration.getCurrentEnvironment().getStartUrl());
24+
AqualityServices.getBrowser().goTo(Configuration.getStartUrl());
2525
}
2626

2727
@When("I open Contact us page")

src/test/java/aquality/selenium/template/glue/transformations/TypeRegistryConfiguration.java renamed to aquality-selenium-template-cucumber/src/test/java/aquality/selenium/template/cucumber/transformations/TypeRegistryConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package aquality.selenium.template.glue.transformations;
1+
package aquality.selenium.template.cucumber.transformations;
22

3-
import aquality.selenium.template.glue.transformations.datatables.ContactUsTransformer;
3+
import aquality.selenium.template.cucumber.transformations.datatables.ContactUsTransformer;
44
import aquality.selenium.template.models.ContactUsInfo;
55
import io.cucumber.core.api.TypeRegistry;
66
import io.cucumber.core.api.TypeRegistryConfigurer;

src/test/java/aquality/selenium/template/glue/transformations/datatables/ContactUsTransformer.java renamed to aquality-selenium-template-cucumber/src/test/java/aquality/selenium/template/cucumber/transformations/datatables/ContactUsTransformer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package aquality.selenium.template.glue.transformations.datatables;
1+
package aquality.selenium.template.cucumber.transformations.datatables;
22

33
import aquality.selenium.template.models.ContactUsInfo;
44
import io.cucumber.datatable.DataTable;

aquality-selenium-template/pom.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<parent>
8+
<artifactId>aquality-selenium-template-project</artifactId>
9+
<groupId>com.github.aquality-automation</groupId>
10+
<version>1.0-SNAPSHOT</version>
11+
</parent>
12+
13+
<artifactId>aquality-selenium-template</artifactId>
14+
</project>

0 commit comments

Comments
 (0)