SlideShare a Scribd company logo
CI / CD with Codeception
Tudor Barbu
@motanelu || @CodeVoyagers
Development
Quality
Assurance
Delivery
Code freeze*
Estimated time
* this how you know you’re old
Development
Quality
Assurance
More
development
QA again
Nervous
breakdown
Last minute
fixes
Delivery
Estimated time Estimated time
Code freeze The “real” code freeze 3rd time’s a charm
Almost done
CI / CD w/ Codeception
Software as a Product
Software as a Service
Development Delivery Observation
Decide on
next features
Rinse and repeat
1 – 4 weeks iterations
CI / CD w/ Codeception
You’re not really agile!
 it takes 1 more week to release
 you have parallel sprints
 new iterations break existing functionality
 you have “bug fixing” sprints
 or other such practices…
However if
Development INT tests
Merge to
master
Deploy to
stg/pre
Deploy to
prod
Continuous Integration
Continuous Delivery
Continuous Deployment
CI / CD w/ Codeception
http://phpunit.de
PHP unit testing framework
https://github.com/padraic/mockery
When tested individually, units
of code are not guaranteed to
work together 
Functional &
Acceptance testing
www.codeception.com
Functional tests*
 run without a web server
 bootstrap the framework with the required $_* variables
 may yield false results when the framework’s
specifications are not followed to the letter
* in this context
Acceptance testing
 emulate RL (server & browser)
 PhpBrowser – cURL & crawl
 Selenium Webdriver
 PhantomJS
$ composer global require codeception/codeception
$ export PATH="$PATH:$HOME/.composer/vendor/bin”
$ cd /path/to/project
$ codecept bootstrap
$ codecept run
Installation
*should* work!
github.com/motanelu/ci-codecpt-example
$ codecept generate:cept acceptance FirstPage
$ vim tests/acceptance/FirstPageCept.php
$ codecept run
<?php
$I = new AcceptanceTester($scenario);
$I->wantTo('See what the fuss is about');
$I->amOnPage('/');
$I->see('Hello there', 'h1');
$I->see('Click here', 'a');
$I->click('Click here');
$I->amOnPage('/login');
$I->see('Log in here');
$I->fillField('name','Tudor');
$I->fillField('password','1234');
$I->click('Submit');
$I->see('Welcome');
$ php vendor/bin/doctrine orm:schema-tool:create --dump-sql > tests/_data/dump.sql
Test me like one of
your French girls
$I->haveInDatabase(
'item',
['id' => 1, 'name' => 'first item’]
);
$I->amOnPage('/items/');
$I->see('first item');
$I->see('Add new item');
$I->click('Add new item');
$I->fillField('name','second item');
$I->click('Submit');
$I->seeInDatabase(
'item',
['id' => 2, 'name' => 'second item’]
);
DB-CI
DB-STG
ci.my-project.tld
demo.my-project.tld
https://travis-ci.org - Open Source
https://travis-ci.com - Commercial Projects
https://circleci.com/
CI / CD w/ Codeception
Thank you
@motanelu
tudor.barbu@skyscanner.net
hello@tudorbarbu.ninja 
@CodeVoyagers
www.codevoyagers.com

More Related Content

PDF
Testing with Codeception
PDF
Testing PHP with Codeception
PDF
Acceptance testing in php with Codeception - Techmeetup Edinburgh
PPTX
Test automation with php codeception
PDF
Codeception
PDF
Codeception: introduction to php testing
PDF
Codeception introduction and use in Yii
PDF
Testing with Codeception (Webelement #30)
Testing with Codeception
Testing PHP with Codeception
Acceptance testing in php with Codeception - Techmeetup Edinburgh
Test automation with php codeception
Codeception
Codeception: introduction to php testing
Codeception introduction and use in Yii
Testing with Codeception (Webelement #30)

What's hot (20)

PDF
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
PDF
PHP Unit Testing in Yii
PDF
Acceptance & Functional Testing with Codeception - Devspace 2015
PDF
Codeception presentation
PDF
Acceptance & Functional Testing with Codeception - SunshinePHP 2016
PPTX
Codeception
PPTX
Automation testing with Drupal 8
PDF
Codeception: introduction to php testing (v2 - Aberdeen php)
PPTX
Automated Testing using JavaScript
PPTX
Automation using Javascript
ODP
Integration Testing in Python
PDF
Test all the things! Automated testing with Drupal 8
KEY
Jellyfish, JSCONF 2011
PDF
Automated Web Testing using JavaScript
PDF
Unit-testing and E2E testing in JS
PDF
From Good to Great: Functional and Acceptance Testing in WordPress.
PDF
AngularJS and Protractor
DOCX
Automation Frame works Instruction Sheet
PDF
Testing Web Applications
PDF
Efficient JavaScript Unit Testing, May 2012
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
PHP Unit Testing in Yii
Acceptance & Functional Testing with Codeception - Devspace 2015
Codeception presentation
Acceptance & Functional Testing with Codeception - SunshinePHP 2016
Codeception
Automation testing with Drupal 8
Codeception: introduction to php testing (v2 - Aberdeen php)
Automated Testing using JavaScript
Automation using Javascript
Integration Testing in Python
Test all the things! Automated testing with Drupal 8
Jellyfish, JSCONF 2011
Automated Web Testing using JavaScript
Unit-testing and E2E testing in JS
From Good to Great: Functional and Acceptance Testing in WordPress.
AngularJS and Protractor
Automation Frame works Instruction Sheet
Testing Web Applications
Efficient JavaScript Unit Testing, May 2012
Ad

Similar to CI / CD w/ Codeception (20)

PPT
Testing Attributes
PDF
Agile Engineering Best Practices by Richard Cheng
PDF
Continuous Automated Regression Testing to the Rescue
DOCX
TestDrivenDeveloment
PDF
End-end tests as first class citizens - SeleniumConf 2020
PPTX
How do you tame a big ball of mud? One test at a time.
PPTX
Testing
PPTX
Topic production code
PPTX
Agile Engineering Sparker GLASScon 2015
PDF
Continuous integration - stability, reliability and speed in software develop...
PDF
Continuous Integration
PDF
Software Development Lifecycle Presentation
PPT
Why test with flex unit
PPTX
The Test way
PPTX
Mobile App Quality Roadmap for DevTest Teams
PDF
Test Driven Development
PPT
Встреча "QA: в каких направлениях может найти себя тестировщик?"
PPTX
Making the Unstable Stable - An Intro To Testing
PPTX
Loopt unit test experiences
PPTX
So you-want-to-go-faster
Testing Attributes
Agile Engineering Best Practices by Richard Cheng
Continuous Automated Regression Testing to the Rescue
TestDrivenDeveloment
End-end tests as first class citizens - SeleniumConf 2020
How do you tame a big ball of mud? One test at a time.
Testing
Topic production code
Agile Engineering Sparker GLASScon 2015
Continuous integration - stability, reliability and speed in software develop...
Continuous Integration
Software Development Lifecycle Presentation
Why test with flex unit
The Test way
Mobile App Quality Roadmap for DevTest Teams
Test Driven Development
Встреча "QA: в каких направлениях может найти себя тестировщик?"
Making the Unstable Stable - An Intro To Testing
Loopt unit test experiences
So you-want-to-go-faster
Ad

More from Tudor Barbu (7)

PDF
Finding the sassy in sass
PPTX
Web components
PDF
Modern frontend development with VueJs
PDF
Building a js widget
PPTX
Testing frontends with nightwatch & saucelabs
PPTX
Logging with Monolog
PPTX
Hack UPC
Finding the sassy in sass
Web components
Modern frontend development with VueJs
Building a js widget
Testing frontends with nightwatch & saucelabs
Logging with Monolog
Hack UPC

Recently uploaded (20)

PPTX
history of c programming in notes for students .pptx
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
AI in Product Development-omnex systems
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
System and Network Administraation Chapter 3
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
ai tools demonstartion for schools and inter college
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Introduction to Artificial Intelligence
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
history of c programming in notes for students .pptx
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
AI in Product Development-omnex systems
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
System and Network Administraation Chapter 3
Design an Analysis of Algorithms II-SECS-1021-03
CHAPTER 2 - PM Management and IT Context
2025 Textile ERP Trends: SAP, Odoo & Oracle
How to Choose the Right IT Partner for Your Business in Malaysia
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Which alternative to Crystal Reports is best for small or large businesses.pdf
Odoo POS Development Services by CandidRoot Solutions
ai tools demonstartion for schools and inter college
ManageIQ - Sprint 268 Review - Slide Deck
Introduction to Artificial Intelligence
Odoo Companies in India – Driving Business Transformation.pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)

CI / CD w/ Codeception