Advanced
Chapter 19 · 11 min read
CI/CD Integration
Run Cucumber tests in GitHub Actions and Jenkins pipelines. Publish reports, handle headless browsers, and set up automated BDD execution.
CI/CD Integration for BDD
BDD tests should run automatically on every commit. CI/CD pipelines execute your Cucumber suite in headless mode, publish reports, and block merges when scenarios fail.
.github/workflows/bdd-tests.yml
name: BDD Tests (Cucumber-JVM)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
bdd-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Install Chrome
uses: browser-actions/setup-chrome@v1
- name: Run Cucumber Tests
run: mvn clean test -Dheadless=true -Dcucumber.filter.tags="not @wip"
- name: Generate Allure Report
if: always()
run: mvn allure:report
- name: Upload Cucumber Report
uses: actions/upload-artifact@v4
if: always()
with:
name: cucumber-report
path: |
target/cucumber-reports.html
target/site/allure-maven-plugin/
- name: Publish Test Results
uses: dorny/test-reporter@v1
if: always()
with:
name: Cucumber Results
path: target/cucumber-junit.xml
reporter: java-junit
.github/workflows/bdd-tests.yml
name: BDD Tests (Behave)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
bdd-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install Chrome
uses: browser-actions/setup-chrome@v1
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run BDD Tests
run: |
behave \
--tags="not @wip" \
--junit --junit-directory=reports/junit \
-f allure_behave.formatter:AllureFormatter \
-o reports/allure \
--no-capture
env:
HEADLESS: "true"
- name: Upload Reports
uses: actions/upload-artifact@v4
if: always()
with:
name: behave-reports
path: reports/
- name: Publish Test Results
uses: dorny/test-reporter@v1
if: always()
with:
name: BDD Results
path: reports/junit/*.xml
reporter: java-junit
Cucumber BDD
Advanced
CI/CD Integration
Written by PV
© 2026 All Rights Reserved