https://github.com/ndviet/test-cucumber-framework
A sample MarsAir project with test case is created and executed by using TestNG, Cucumber, Selenium
https://github.com/ndviet/test-cucumber-framework
automation cucumber-java test-automation testng-framework
Last synced: about 14 hours ago
JSON representation
A sample MarsAir project with test case is created and executed by using TestNG, Cucumber, Selenium
- Host: GitHub
- URL: https://github.com/ndviet/test-cucumber-framework
- Owner: NDViet
- Created: 2023-02-27T01:16:12.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-06-28T11:28:25.000Z (almost 2 years ago)
- Last Synced: 2025-03-05T05:20:08.745Z (about 1 year ago)
- Topics: automation, cucumber-java, test-automation, testng-framework
- Language: Java
- Homepage: http://www.ndviet.org/test-cucumber-framework/
- Size: 23.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Introduction
Test repository with test case is created and executed in Cucumber Framework.
## List dependency repositories
1. [test-parent-pom](../../../test-parent-pom)
2. [test-automation-fwk](../../../test-automation-fwk)
## Source code usage
1. Clone repository "test-parent-pom" (**mandatory**)
```shell
git clone git@github.com:ndviet/test-parent-pom.git
```
2. Clone this test repository to the same directory
```shell
git clone git@github.com:ndviet/test-cucumber-framework.git
```
3. Build source code in each repository following the order
- test-parent-pom
- test-cucumber-framework
4. Run test cases in test repository
```shell
cd test-cucumber-framework
```
```shell
mvn clean verify -DskipTests=false -D"includes=@SearchFlights" -D"selenium.browser.type=chrome"
```
## Run UI tests in shared container image + Selenium Grid
Use `ndviet/test-automation-java-common` as test runner container and start Selenium Grid from Docker Compose:
```shell
./test-cucumber-framework/run-in-container.sh
```
No local build of `test-parent-pom` or `test-automation-fwk` is required.
Dependencies are resolved from GitHub Maven repositories.
If package access is private, configure GitHub Packages credentials in `~/.m2/settings.xml`.
```xml
github
${env.GITHUB_ACTOR}
${env.GITHUB_TOKEN}
```
Override tags, browser, or image when needed:
```shell
CUCUMBER_TAGS=@PromotionalCode BROWSER=chrome TEST_IMAGE=ndviet/test-automation-java-common:latest ./test-cucumber-framework/run-in-container.sh
```
Keep Grid containers running after test execution:
```shell
KEEP_GRID_UP=true ./test-cucumber-framework/run-in-container.sh
```
Execution mode defaults:
1. `MAVEN_OFFLINE=true`: run immediately using dependencies pre-seeded in `test-automation-java-common`.
2. `MAVEN_NO_SNAPSHOT_UPDATES=true`: skip snapshot metadata checks (`-nsu`).
3. `MAVEN_AUTO_FALLBACK_ONLINE=true`: if offline fails, retry online automatically.
If you need to force remote Maven resolution:
```shell
MAVEN_OFFLINE=false MAVEN_NO_SNAPSHOT_UPDATES=false ./test-cucumber-framework/run-in-container.sh
```
## GitHub Actions UI workflow
Workflow file:
```text
.github/workflows/cucumber-ui-container.yml
```
The workflow:
1. Pulls shared test image `ndviet/test-automation-java-common` (or `DOCKERHUB_JAVA_COMMON_IMAGE` repo variable).
2. Starts Selenium Grid containers.
3. Runs Cucumber UI tests remotely against `http://selenium:4444`.
4. Uploads `target/reports` and `target/surefire-reports` as artifacts.
## Reference
A sample project with entire repositories together for the test execution.
* [test-automation-project](../../../test-automation-project)