Test repository with test case is created and executed in TestNG Framework.
- Clone repository "test-parent-pom" (mandatory)
git clone git@github.com:ndviet/test-parent-pom.git- Clone this test repository to the same directory
git clone git@github.com:ndviet/test-testng-framework.git- Build source code in each repository following the order
- test-parent-pom
- test-testng-framework
- Run test cases in test repository
cd test-testng-frameworkmvn test -DskipTests=false -Dincludes="EasyUpload_io.xml"
mvn test -DskipTests=false -Dincludes="OnlyTestingBlog.xml"
mvn test -DskipTests=false -Dincludes="DemoQA_Download.xml"Noted:
- [includes] property is used to provide Test Suite xml file would be executed.
Use ndviet/test-automation-java-common as test runner container and start Selenium Grid from Docker Compose:
./test-testng-framework/run-in-container.shNo 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-test-parent-pom</id>
<username>${env.GITHUB_ACTOR}</username>
<password>${env.GITHUB_TOKEN}</password>
</server>
<server>
<id>github-test-automation-fwk</id>
<username>${env.GITHUB_ACTOR}</username>
<password>${env.GITHUB_TOKEN}</password>
</server>
</servers>
</settings>Override suite, browser, or image:
TESTNG_SUITE=DemoQA_Download.xml BROWSER=chrome TEST_IMAGE=ndviet/test-automation-java-common:latest ./test-testng-framework/run-in-container.shKeep Grid containers running after test execution:
KEEP_GRID_UP=true ./test-testng-framework/run-in-container.shExecution mode defaults:
MAVEN_OFFLINE=true: run immediately using dependencies pre-seeded intest-automation-java-common.MAVEN_NO_SNAPSHOT_UPDATES=true: skip snapshot metadata checks (-nsu).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-testng-framework/run-in-container.shWorkflow file:
.github/workflows/testng-ui-container.yml
The workflow:
- Pulls shared test image
ndviet/test-automation-java-common(orDOCKERHUB_JAVA_COMMON_IMAGErepo variable). - Starts Selenium Grid containers.
- Runs TestNG UI tests remotely against
http://selenium:4444. - Uploads
target/reportsandtarget/surefire-reportsas artifacts.
A sample project with entire repositories together for the test execution.