1 / 15

PHP, QA, and Jenkins Eric Cope

PHP, QA, and Jenkins Eric Cope. June 25, 2013 http:// voltampmedia.com. About M e. I run Voltamp Media Inc., a 1-man web- dev shop PHP-literate since 2002 CodeIgniter since 2005 (1.6 whenever that was) Bitten by the TDD bug around 2006 Met Hudson/Jenkins in 2011. The Tools.

zwi
Download Presentation

PHP, QA, and Jenkins Eric Cope

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP, QA, and JenkinsEric Cope June 25, 2013 http://voltampmedia.com

  2. About Me • I run Voltamp Media Inc., a 1-man web-dev shop • PHP-literate since 2002 • CodeIgniter since 2005 (1.6 whenever that was) • Bitten by the TDD bug around 2006 • Met Hudson/Jenkins in 2011

  3. The Tools • Jenkins - http://jenkins-ci.org • Continuous Integration Tool • Basic install is a quick download then: • java –jar jenkins.war • Normal vs. LTS • For bigger installations, its recommended to run within a java container, like Tomcat. • PHPUnit – http://phpqatools.org • A set of QA tools • Installation is via PEAR • Selenium – http://seleniumhq.org/ • java -jar selenium-server-standalone-2.31.0.jar

  4. Getting Started • Open a browser to: • http://localhost:8080

  5. Managing Jenkins • File System Location • Config files • Project build areas • Manage plugins • Start from here - http://jenkins-php.org/ • Get the plugins

  6. The First Job • Each job must be configured! • Source Code – how to get the code • Build triggers (poll SCM, commit hooks) • Build Steps • Scripts (very limited environment) • Maven • Ant – see http://jenkins-php.org/ for yours! • Post Build Steps • Plots, reports

  7. The ANT Script • This is auto-generated, then modified as needed • Test by running: % ant /path/to/build.xml • More at http://ant.apache.org

  8. The PHPUnit Script • This is auto-generated, then modified as needed too • Test by running: % phpunit

  9. PHPUnit Tips and Tricks - fixtures • YAML files can be used within a fixture

  10. PHPUnit Tips and Tricks – data providers • YAML files can be used as a data provider too • Calls the provider (returns an array) • For each row it calls the test • The YAML is different!

  11. PHPUnit Tips and Tricks – Exceptions • Test your exceptions! • Check exception class and code

  12. Bonus! PHPUnit and Selenium • Make Jenkins drive PHPUnit drive Selenium!

  13. My Issues - controller • My current projects use CodeIgniter. CIUnit makes using PHPUnit and CI better, but setup is painful. • End case of parent controller • Correct parent class in setUp, but not in the testMethod! • MY_Controller vs. Controller • $this->CI = set_controller('MY_Controller');

  14. My Issues - Selenium • Selenium has matured quite a bit, but documentation and support is still very lean. • PHPUnit’s Selenium2 class is much better, but still leaves much to be desired. • Click() does not wait for the page to load after a form submission. Selenese supported clickandwait(), but I can’t find documentation… • https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php • http://stackoverflow.com/questions/9102505/phpunit-with-selenium

  15. Still to Learn/Do • Mocks • Dependency Injection • Code Coverage • DRY-er! • More Integration coverage with Selenium • Exclude External Libraries in analysis || fix them! • Better TDD / BDD

More Related