SlideShare a Scribd company logo
Globalcode – Open4education
PHP Trail – Tests and PHP Continuous
Integration Environment for Agile
Development
Bruno Yukio Tanoue
Web Developer – UOL BoaCompra
Globalcode – Open4education
Bruno Tanoue
Web Developer @ UOL BoaCompra ( 3 years and
5 months)
BoaCompra Checkout and Payment Gateway.
BoaCompra Financial System.
Bachelor’s degree in Computer Science from UEM
(State University of Maringá)
Email: brunotanoue@hotmail.com
LinkedIn: https://br.linkedin.com/in/brunotanoue/en
Globalcode – Open4education
Schedule
Tests Pyramid
Solitary Unit Test x Sociable Unit Test
Optimizations for Running Tests
PHP Continuous Integration Environment
Globalcode – Open4education
Tests Pyramid
Goal: To provide an adequate tests proportion to
run and a quick feedback.
Unit Tests: To verify the quality at small code snippets
(units).
e.g., PHPUnit
Integration Tests: To test the integration of the tested
units.
e.g., PHPUnit + DBUnit
UI Tests (User Interface Tests): To validate flows and
information displayed at the user level.
e.g., Selenium Webdriver
Globalcode – Open4education
Tests Pyramid
http://martinfowler.com/bliki/TestPyramid.html
T
Globalcode – Open4education
Solitary Unit Test x
Sociable Unit Test
What is a unit test?
Concept more used and defended:
Solitary Unit Test: Methods are tested in isolation from
other internal methods and external communications
using mocks.
Mock: It’s a change of a real structure to a simulated
structure for running tests.
Globalcode – Open4education
Solitary Unit Test x
Sociable Unit Test
Solitary Unit Test
Controller Model Database
Controller Model(Mock)
Unit
Globalcode – Open4education
Solitary Unit Test x
Sociable Unit Test
Solitary Unit Test
Advantages:
Quick execution.
Faster error location.
Exception simulation.
Disadvantages:
Possible outdated mock.
False positive at tests.
Possible bug at production.
Globalcode – Open4education
Solitary Unit Test x
Sociable Unit Test
What is a unit test?
Less known concept:
Sociable Unit Test : Methods are tested in collaboration
from other internal methods and external
communications.
What is unit in this case?
It depends on the depth of your test.
Globalcode – Open4education
Unit
Solitary Unit Test x
Sociable Unit Test
Sociable Unit Test
Controller Model Database
Globalcode – Open4education
Solitary Unit Test x
Sociable Unit Test
Sociable Unit Test
Advantages:
Running tests with the real structure.
More thoroughly tested scenario (units collaboration).
Disadvantages:
Slower runtime.
High dependence among components or systems.
False negative at tests ( e.g., external communications ).
Globalcode – Open4education
Solitary Unit Test x
Sociable Unit Test
What kind of unit test is best?
It’s necessary to review each case depending on
the need and use one of two test types.
What about the tests pyramid with the sociable unit
tests?
http://martinfowler.com/bliki/UnitTest.html
TOO CONFUSING!!!!
Globalcode – Open4education
Optimizations for Running
Tests
What is important for running tests?
It must pass confidence that code is reliable.
It must be easy to understand.
The suite execution must be as fast as possible, so that
it runs as soon as possible and many times as
necessary. (e.g., every commit )
Globalcode – Open4education
Optimizations for Running
Tests
Environment Optimizations
Problems that can delay the running tests:
Network concurrence.
Database concurrence.
Possible solution: To centralize the testing environment
on a single machine, either virtual or real with its own
database for testing.
Globalcode – Open4education
Optimizations for Running
Tests
Environment Optimizations
STAGING DATABASE LOCAL TEST DATABASE
BEFORE AFTER
Globalcode – Open4education
Optimizations for Running
Tests
Code Optimizations – Unit Tests
@dataProvider : Creating a data provider to produce
entries for a test.
Globalcode – Open4education
Optimizations for Running
Tests
Without @dataProvider
Globalcode – Open4education
Optimizations for Running
Tests
With @dataProvider
Globalcode – Open4education
Optimizations for Running
Tests
Code Optimizations – UI Tests
setUp e tearDown
At the suite execution, it prevents multiple browsers stay open if
several tests fail.
Globalcode – Open4education
Optimizations for Running
Tests
Code Optimizations – UI Tests
setUpBeforeClass e tearDownAfterClass
What if instead, the browser was opened and closed once at
each test class?
Globalcode – Open4education
Optimizations for Running
Tests
Code Optimizations – UI Tests
Surefire Plugin (Running tests in parallel)
Globalcode – Open4education
Optimizations for Running
Tests
Code Optimizations – UI Tests
Results – Build #73 (Using setUp and tearDown)
Globalcode – Open4education
Optimizations for Running
Tests
Code Optimizations – UI Tests
Results – Build #75 (Using setUpBeforeClass and
tearDownAfterClass)
Globalcode – Open4education
Optimizations for Running
Tests
Code Optimizations – UI Tests
Results – Build #75 (Using setUpBeforeClass and
tearDownAfterClass)
Globalcode – Open4education
Optimizations for Running
Tests
Code Optimizations – UI Tests
Results – Build #76 (parallel tests)
Globalcode – Open4education
PHP Continuous
Integration Environment
What is a continuous integration environment?
Continuous Integration
Agile process.
It defends the continuous code delivery in a central repository in
a short time.
The code to be integrated can’t produce defects at the existing
code. (tests)
The continuous integration environment aims to
automate tasks of the continuous integration process.
Automation is important to decrease the errors of human
nature.
Globalcode – Open4education
PHP Continuous
Integration Environment
Monitoring
Central
repository
with
version
control
CI
SERVER
Globalcode – Open4education
PHP Continuous
Integration Environment
How does create a basic continuous integration
(CI) server for PHP?
Verification
and
Updating of
Repository
Copy
Running
Tests
Building
Package
Globalcode – Open4education
PHP Continuous
Integration Environment
How does create a basic continuous integration
(CI) server for PHP?
CI Tool (Jenkins, Hudson, etc..)
It’s the heart of continuous integration server, where whole code
integration process, tests and building packages is done.
Versioning Control (GIT, SVN, etc...)
The CI server will verify the central repository from time to time
checking if there was a change. If there is a change, a building
will be triggered and the local copy is updated.
Globalcode – Open4education
PHP Continuous
Integration Environment
How does create a basic continuous integration
(CI) server for PHP?
PHP/PHPUnit
Running tests to validate the integrated code.
Web Server (Apache) and Database (MySQL, SQLite,
etc...)
Support for sociable unit tests, integration tests and UI tests.
Building Tool (Maven, Ant, etc...)
Building packages.
Globalcode – Open4education
PHP Continuous
Integration Environment
Thanks champs!!! So now I’ll install everything
manually!!!!
“IT’S RIGHT!!”! :P
Globalcode – Open4education
PHP Continuous
Integration Environment
Jenkins can manage the installation of most
components through PLUGINS.
It can manage multiple component versions.
Easy installation, removal or upgrade.
Globalcode – Open4education
PHP Continuous
Integration Environment
Globalcode – Open4education
PHP Continuous
Integration Environment
Globalcode – Open4education
PHP Continuous
Integration Environment
Other useful plugins:
Clover PHP
Code coverage chart for each building.
Warnings when code coverage decreases.
Globalcode – Open4education
PHP Continuous
Integration Environment
Other useful plugins:
Clover PHP
Globalcode – Open4education
PHP Continuous
Integration Environment
Other useful plugins:
HTML Publisher
PHPUnit Log: It provides code coverage charts of each folder,
class or method.
Covered and discovered lines information and dead code.
Globalcode – Open4education
PHP Continuous
Integration Environment
Other useful plugins:
HTML Publisher
Globalcode – Open4education
PHP Continuous
Integration Environment
The continuous integration process within Jenkins
is represented by Job.
A job can be configured in a very varied way, could
represent a step in the continuous integration, like whole
continuous integration process.
It’s possible to change the step execution order within a
job through a simple “drag and drop”.
Globalcode – Open4education
PHP Continuous
Integration Environment
Globalcode – Open4education
PHP Continuous
Integration Environment
Creating and Running a PHP job in Jenkins:
Step 1: Setting up the management of source code.
Globalcode – Open4education
PHP Continuous
Integration Environment
Creating and Running a PHP job in Jenkins:
Step 2: Setting up the repository verification method
(trigger).
Globalcode – Open4education
PHP Continuous
Integration Environment
Creating and Running a PHP job in Jenkins:
Step 3: Setting up the tests.
Globalcode – Open4education
PHP Continuous
Integration Environment
Creating and Running a PHP job in Jenkins:
Step 4: Setting up the building packages.
Globalcode – Open4education
PHP Continuous
Integration Environment
Creating and Running a PHP job in Jenkins:
Step 5: Saving and executing!!!!
Globalcode – Open4education
PHP Continuous
Integration Environment
Execution Logs:
Globalcode – Open4education
PHP Continuous
Integration Environment
Execution Logs:
Globalcode – Open4education
PHP Continuous
Integration Environment
Execution Logs:
Globalcode – Open4education
THE END
Email: brunotanoue@hotmail.com
Any doubt?Any doubt?

More Related Content

PDF
Joomla Code Quality Control and Automation Testing
DOCX
Test Management in TeamForge
PDF
Manual testing by reddy
PDF
Building a CI/CD Pipeline for PHP apps
PPTX
Software testing tools (free and open source)
PPT
Automation testing by Durgasoft in Hyderabad
DOCX
Some Commonly Asked Question For Software Testing
Joomla Code Quality Control and Automation Testing
Test Management in TeamForge
Manual testing by reddy
Building a CI/CD Pipeline for PHP apps
Software testing tools (free and open source)
Automation testing by Durgasoft in Hyderabad
Some Commonly Asked Question For Software Testing

What's hot (18)

PDF
NIWeek 2017 - Automated Test of LabVIEW FPGA Code: CI and Jenkins 2 Pipelines
PDF
Android Devops : Master Continuous Integration and Delivery
PPT
Automation testing material by Durgasoft,hyderabad
PDF
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
PDF
Testing Tools
PDF
Delivering Quality Software with Continuous Integration
PDF
Model-based Testing: Taking BDD/ATDD to the Next Level
PDF
Refactoring Legacy Code
DOCX
Prg 218 entire course
PDF
Data Generation with PROSPECT: a Probability Specification Tool
PDF
Codeception Testing Framework -- English #phpkansai
PPTX
Practical Software Testing Tools
DOCX
Realtime selenium interview questions
PPTX
Unit 2 unit testing
PDF
User story workflow (eng)
ODP
Software testing tools
PDF
Introduction to test automation in java and php
PDF
Test Driven iOS Development (TDD)
NIWeek 2017 - Automated Test of LabVIEW FPGA Code: CI and Jenkins 2 Pipelines
Android Devops : Master Continuous Integration and Delivery
Automation testing material by Durgasoft,hyderabad
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Testing Tools
Delivering Quality Software with Continuous Integration
Model-based Testing: Taking BDD/ATDD to the Next Level
Refactoring Legacy Code
Prg 218 entire course
Data Generation with PROSPECT: a Probability Specification Tool
Codeception Testing Framework -- English #phpkansai
Practical Software Testing Tools
Realtime selenium interview questions
Unit 2 unit testing
User story workflow (eng)
Software testing tools
Introduction to test automation in java and php
Test Driven iOS Development (TDD)
Ad

Similar to [ENGLISH] TDC 2015 - PHP Trail - Tests and PHP Continuous Integration Environment for Agile Development (20)

PDF
Release Automation: Better Quality, Faster Deployment, Amazing ROI
PDF
DevOps CI Automation Continuous Integration
PPTX
Anatomy of a Build Pipeline
PDF
Back to basics - PHPUnit
PPTX
Getting Started with Test-Driven Development at Longhorn PHP 2023
PDF
Codeception: introduction to php testing
PPTX
DevOps and Build Automation
PDF
Codeception: introduction to php testing (v2 - Aberdeen php)
PDF
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
PPT
Automated Software Testing Framework Training by Quontra Solutions
PDF
Performance profiling and testing of symfony application 2
PPTX
Solving the Automation Puzzle - how to select the right automation framework ...
PPT
Part 2 improving your software development v1.0
PDF
Quality for developers
PDF
CI/CD Test Automation: Key Strategies, Tools, and Challenges
PDF
Continuous Integration In Php
PPTX
varun JENKINS.pptx
PDF
Agile Bodensee - Testautomation & Continuous Delivery Workshop
PPTX
Agile Engineering Sparker GLASScon 2015
PDF
Mastering DevOps-Driven Data Integration with FME
Release Automation: Better Quality, Faster Deployment, Amazing ROI
DevOps CI Automation Continuous Integration
Anatomy of a Build Pipeline
Back to basics - PHPUnit
Getting Started with Test-Driven Development at Longhorn PHP 2023
Codeception: introduction to php testing
DevOps and Build Automation
Codeception: introduction to php testing (v2 - Aberdeen php)
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Automated Software Testing Framework Training by Quontra Solutions
Performance profiling and testing of symfony application 2
Solving the Automation Puzzle - how to select the right automation framework ...
Part 2 improving your software development v1.0
Quality for developers
CI/CD Test Automation: Key Strategies, Tools, and Challenges
Continuous Integration In Php
varun JENKINS.pptx
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Engineering Sparker GLASScon 2015
Mastering DevOps-Driven Data Integration with FME
Ad

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Empathic Computing: Creating Shared Understanding
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Approach and Philosophy of On baking technology
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Machine learning based COVID-19 study performance prediction
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Empathic Computing: Creating Shared Understanding
Advanced methodologies resolving dimensionality complications for autism neur...
20250228 LYD VKU AI Blended-Learning.pptx
NewMind AI Monthly Chronicles - July 2025
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
NewMind AI Weekly Chronicles - August'25 Week I
Digital-Transformation-Roadmap-for-Companies.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Approach and Philosophy of On baking technology
Spectral efficient network and resource selection model in 5G networks
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Chapter 3 Spatial Domain Image Processing.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf

[ENGLISH] TDC 2015 - PHP Trail - Tests and PHP Continuous Integration Environment for Agile Development

  • 1. Globalcode – Open4education PHP Trail – Tests and PHP Continuous Integration Environment for Agile Development Bruno Yukio Tanoue Web Developer – UOL BoaCompra
  • 2. Globalcode – Open4education Bruno Tanoue Web Developer @ UOL BoaCompra ( 3 years and 5 months) BoaCompra Checkout and Payment Gateway. BoaCompra Financial System. Bachelor’s degree in Computer Science from UEM (State University of Maringá) Email: brunotanoue@hotmail.com LinkedIn: https://br.linkedin.com/in/brunotanoue/en
  • 3. Globalcode – Open4education Schedule Tests Pyramid Solitary Unit Test x Sociable Unit Test Optimizations for Running Tests PHP Continuous Integration Environment
  • 4. Globalcode – Open4education Tests Pyramid Goal: To provide an adequate tests proportion to run and a quick feedback. Unit Tests: To verify the quality at small code snippets (units). e.g., PHPUnit Integration Tests: To test the integration of the tested units. e.g., PHPUnit + DBUnit UI Tests (User Interface Tests): To validate flows and information displayed at the user level. e.g., Selenium Webdriver
  • 5. Globalcode – Open4education Tests Pyramid http://martinfowler.com/bliki/TestPyramid.html T
  • 6. Globalcode – Open4education Solitary Unit Test x Sociable Unit Test What is a unit test? Concept more used and defended: Solitary Unit Test: Methods are tested in isolation from other internal methods and external communications using mocks. Mock: It’s a change of a real structure to a simulated structure for running tests.
  • 7. Globalcode – Open4education Solitary Unit Test x Sociable Unit Test Solitary Unit Test Controller Model Database Controller Model(Mock) Unit
  • 8. Globalcode – Open4education Solitary Unit Test x Sociable Unit Test Solitary Unit Test Advantages: Quick execution. Faster error location. Exception simulation. Disadvantages: Possible outdated mock. False positive at tests. Possible bug at production.
  • 9. Globalcode – Open4education Solitary Unit Test x Sociable Unit Test What is a unit test? Less known concept: Sociable Unit Test : Methods are tested in collaboration from other internal methods and external communications. What is unit in this case? It depends on the depth of your test.
  • 10. Globalcode – Open4education Unit Solitary Unit Test x Sociable Unit Test Sociable Unit Test Controller Model Database
  • 11. Globalcode – Open4education Solitary Unit Test x Sociable Unit Test Sociable Unit Test Advantages: Running tests with the real structure. More thoroughly tested scenario (units collaboration). Disadvantages: Slower runtime. High dependence among components or systems. False negative at tests ( e.g., external communications ).
  • 12. Globalcode – Open4education Solitary Unit Test x Sociable Unit Test What kind of unit test is best? It’s necessary to review each case depending on the need and use one of two test types. What about the tests pyramid with the sociable unit tests? http://martinfowler.com/bliki/UnitTest.html TOO CONFUSING!!!!
  • 13. Globalcode – Open4education Optimizations for Running Tests What is important for running tests? It must pass confidence that code is reliable. It must be easy to understand. The suite execution must be as fast as possible, so that it runs as soon as possible and many times as necessary. (e.g., every commit )
  • 14. Globalcode – Open4education Optimizations for Running Tests Environment Optimizations Problems that can delay the running tests: Network concurrence. Database concurrence. Possible solution: To centralize the testing environment on a single machine, either virtual or real with its own database for testing.
  • 15. Globalcode – Open4education Optimizations for Running Tests Environment Optimizations STAGING DATABASE LOCAL TEST DATABASE BEFORE AFTER
  • 16. Globalcode – Open4education Optimizations for Running Tests Code Optimizations – Unit Tests @dataProvider : Creating a data provider to produce entries for a test.
  • 17. Globalcode – Open4education Optimizations for Running Tests Without @dataProvider
  • 18. Globalcode – Open4education Optimizations for Running Tests With @dataProvider
  • 19. Globalcode – Open4education Optimizations for Running Tests Code Optimizations – UI Tests setUp e tearDown At the suite execution, it prevents multiple browsers stay open if several tests fail.
  • 20. Globalcode – Open4education Optimizations for Running Tests Code Optimizations – UI Tests setUpBeforeClass e tearDownAfterClass What if instead, the browser was opened and closed once at each test class?
  • 21. Globalcode – Open4education Optimizations for Running Tests Code Optimizations – UI Tests Surefire Plugin (Running tests in parallel)
  • 22. Globalcode – Open4education Optimizations for Running Tests Code Optimizations – UI Tests Results – Build #73 (Using setUp and tearDown)
  • 23. Globalcode – Open4education Optimizations for Running Tests Code Optimizations – UI Tests Results – Build #75 (Using setUpBeforeClass and tearDownAfterClass)
  • 24. Globalcode – Open4education Optimizations for Running Tests Code Optimizations – UI Tests Results – Build #75 (Using setUpBeforeClass and tearDownAfterClass)
  • 25. Globalcode – Open4education Optimizations for Running Tests Code Optimizations – UI Tests Results – Build #76 (parallel tests)
  • 26. Globalcode – Open4education PHP Continuous Integration Environment What is a continuous integration environment? Continuous Integration Agile process. It defends the continuous code delivery in a central repository in a short time. The code to be integrated can’t produce defects at the existing code. (tests) The continuous integration environment aims to automate tasks of the continuous integration process. Automation is important to decrease the errors of human nature.
  • 27. Globalcode – Open4education PHP Continuous Integration Environment Monitoring Central repository with version control CI SERVER
  • 28. Globalcode – Open4education PHP Continuous Integration Environment How does create a basic continuous integration (CI) server for PHP? Verification and Updating of Repository Copy Running Tests Building Package
  • 29. Globalcode – Open4education PHP Continuous Integration Environment How does create a basic continuous integration (CI) server for PHP? CI Tool (Jenkins, Hudson, etc..) It’s the heart of continuous integration server, where whole code integration process, tests and building packages is done. Versioning Control (GIT, SVN, etc...) The CI server will verify the central repository from time to time checking if there was a change. If there is a change, a building will be triggered and the local copy is updated.
  • 30. Globalcode – Open4education PHP Continuous Integration Environment How does create a basic continuous integration (CI) server for PHP? PHP/PHPUnit Running tests to validate the integrated code. Web Server (Apache) and Database (MySQL, SQLite, etc...) Support for sociable unit tests, integration tests and UI tests. Building Tool (Maven, Ant, etc...) Building packages.
  • 31. Globalcode – Open4education PHP Continuous Integration Environment Thanks champs!!! So now I’ll install everything manually!!!! “IT’S RIGHT!!”! :P
  • 32. Globalcode – Open4education PHP Continuous Integration Environment Jenkins can manage the installation of most components through PLUGINS. It can manage multiple component versions. Easy installation, removal or upgrade.
  • 33. Globalcode – Open4education PHP Continuous Integration Environment
  • 34. Globalcode – Open4education PHP Continuous Integration Environment
  • 35. Globalcode – Open4education PHP Continuous Integration Environment Other useful plugins: Clover PHP Code coverage chart for each building. Warnings when code coverage decreases.
  • 36. Globalcode – Open4education PHP Continuous Integration Environment Other useful plugins: Clover PHP
  • 37. Globalcode – Open4education PHP Continuous Integration Environment Other useful plugins: HTML Publisher PHPUnit Log: It provides code coverage charts of each folder, class or method. Covered and discovered lines information and dead code.
  • 38. Globalcode – Open4education PHP Continuous Integration Environment Other useful plugins: HTML Publisher
  • 39. Globalcode – Open4education PHP Continuous Integration Environment The continuous integration process within Jenkins is represented by Job. A job can be configured in a very varied way, could represent a step in the continuous integration, like whole continuous integration process. It’s possible to change the step execution order within a job through a simple “drag and drop”.
  • 40. Globalcode – Open4education PHP Continuous Integration Environment
  • 41. Globalcode – Open4education PHP Continuous Integration Environment Creating and Running a PHP job in Jenkins: Step 1: Setting up the management of source code.
  • 42. Globalcode – Open4education PHP Continuous Integration Environment Creating and Running a PHP job in Jenkins: Step 2: Setting up the repository verification method (trigger).
  • 43. Globalcode – Open4education PHP Continuous Integration Environment Creating and Running a PHP job in Jenkins: Step 3: Setting up the tests.
  • 44. Globalcode – Open4education PHP Continuous Integration Environment Creating and Running a PHP job in Jenkins: Step 4: Setting up the building packages.
  • 45. Globalcode – Open4education PHP Continuous Integration Environment Creating and Running a PHP job in Jenkins: Step 5: Saving and executing!!!!
  • 46. Globalcode – Open4education PHP Continuous Integration Environment Execution Logs:
  • 47. Globalcode – Open4education PHP Continuous Integration Environment Execution Logs:
  • 48. Globalcode – Open4education PHP Continuous Integration Environment Execution Logs:
  • 49. Globalcode – Open4education THE END Email: brunotanoue@hotmail.com Any doubt?Any doubt?