Skip to content

NDViet/test-cucumber-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

Test repository with test case is created and executed in Cucumber Framework.

List dependency repositories

  1. test-parent-pom
  2. test-automation-fwk

Source code usage

  1. Clone repository "test-parent-pom" (mandatory)
git clone git@github.com:ndviet/test-parent-pom.git
  1. Clone this test repository to the same directory
git clone git@github.com:ndviet/test-cucumber-framework.git
  1. Build source code in each repository following the order
  • test-parent-pom
  • test-cucumber-framework
  1. Run test cases in test repository
cd test-cucumber-framework
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:

./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.

<settings>
  <servers>
    <server>
      <id>github</id>
      <username>${env.GITHUB_ACTOR}</username>
      <password>${env.GITHUB_TOKEN}</password>
    </server>
  </servers>
</settings>

Override tags, browser, or image when needed:

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:

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:

MAVEN_OFFLINE=false MAVEN_NO_SNAPSHOT_UPDATES=false ./test-cucumber-framework/run-in-container.sh

GitHub Actions UI workflow

Workflow file:

.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.

About

A sample MarsAir project with test case is created and executed by using TestNG, Cucumber, Selenium

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors