background preloader

Continuous Integration & Build Server - TeamCity

Continuous Integration & Build Server - TeamCity

A technical blog written by Richard Paul | rapaul.com Setting up continuous integration for PHP using Hudson and Phing « Dave Gardner – PHP Developer In this, my first post, I’m going to write about the benefits of Unit Testing and how Continuous Integration (CI) can be used to get the best out of Unit Testing. This will include details of how I setup a CI system using Hudson CI server, Phing build tool combined with various other analysis tools (including PHP Unit). One of the best explanations of Unit Testing I’ve read was posted by benzado on Stack Overflow. Unit testing is a lot like going to the gym. The difficulty with Unit Testing is keeping it up. For me, there are two critical reasons for Unit Testing: Enforcing good design To be able to write tests, you need to be able to zero in on a “unit” of code, isolating it from all the rest of your 1,000,000 lines of web application. Continuous integration Martin Fowler describes the process of Continuation Integration in detail. The key idea behind CI is to do what is most painful often, namely “building” everyone’s code from source and making sure it all works. Continuous integration

Continuous Integration I vividly remember one of my first sightings of a large software project. I was taking a summer internship at a large English electronics company. My manager, part of the QA group, gave me a tour of a site and we entered a huge depressing warehouse stacked full with cubes. I was told that this project had been in development for a couple of years and was currently integrating, and had been integrating for several months. But this needn't be the way. This contrast isn't the result of an expensive and complex tool. When I've described this practice to people, I commonly find two reactions: "it can't work (here)" and "doing it won't make much difference". The term 'Continuous Integration' originated with the Extreme Programming development process, as one of its original twelve practices. Although Continuous Integration is a practice that requires no particular tooling to deploy, we've found that it is useful to use a Continuous Integration server. Practices of Continuous Integration

Related: