I n t e g r a t e Y o u r P H P P r o j e c t w i t h J e n k i n s S e b a s t i a n B e r g m a n n t h O S C O N – J u l y 2 7 2 0 1 1 s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
S e b a s t i a n s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
C r u c i a l P r a c t i c e s o f A g i l e P r o g r a mme r s C o n t i n u o u s I n t e g r a t i o n T e s t - D r i v e n D e v e l o p m e n t C o n s t a n t D e s i g n I m p r o v e m e n t C o d i n g S t a n d a r d r e g n i t t O m i C T d o l l e c t i v e C o d e O w n e r s h i p n a r g n a L f f e J S y b i m p l e D e s i g n l a i r e t a m s n i a S t n y s t e m M e t a p h o r o c e d i l s s i h T P a i r P r o g r a m m i n g s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
Wh a t t h i s me a n s i n p r a c t i c e . . . O r i g i n a l a u t h o r s h i p i s i m m a t e r i a l A n y o n e c a n m o d i f y a n y c o d e a t a n y t i m e T h e t e a m a d h e r e s t o a c o d i n g s t a n d a r d A b u n d a n t a u t o m a t e d t e s t s c r e a t e c o n f i d e n c e r e g n i t t O m i V T d e r s i o n c o n t r o l p r o v i d e s i n s u r a n c e n a r g n a L f f e J y b l a i r e t a m s n i a t n o c e d i l s s i h T s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
C o n t i n u o u s I n t e g r a t i o n F o r e a c h c h a n g e s e t – r u n t h e t e s t s – a n a l y s e t h e s o u r c e c o d e – g e n e r a t e d o c u m e n t a t i o n – b u i l d a p a c k a g e – . . . s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
T h e V a l u e o f C o n t i n u o u s I n t e g r a t i o n R e d u c e r i s k s R e d u c e r e p e t i t i v e p r o c e s s e s P r e v e n t l o w i n t e r n a l s o f t w a r e q u a l i t y G e n e r a t e d e p l o y a b l e s o f t w a r e E l l n a b l e b e t t e r p r o j e c t v i s i b i l i t y a v u D . M l u a P E y b s t a b l i s h g r e a t e r p r o j e c t c o n f i d e n c e l a i r e t a m s n i a t n o c e d i l s s i h T s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
P r e r e q u i s i t e s f o r C o n t i n u o u s I n t e g r a t i o n B u i l d A u t o m a t i o n S o f t w a r e C o n f i g u r a t i o n M a n a g e m e n t s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
D i r e c t o r y S t r u c t u r e o f o u r E x a mp l e P r o j e c t . | - - b u i l d | | - - p h p c s . x m l | | - - p h p m d . x m l | | - - s r c _ a u t o l o a d . p h p . i n | ` - - t e s t s _ a u t o l o a d . p h p . i n | - - b u i l d . x m l | - - p h p u n i t . x m l . d i s t | - - R E A D M E . m a r k d o w n | - - s r c | | - - a u t o l o a d . p h p | ` - - . . . ` - - t e s t s | - - a u t o l o a d . p h p ` - - . . . s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
A p a c h e A n t b u i l d s c r i p t t h a t i n v o k e s P H P A B <?xml version="1.0" encoding="UTF-8"?> <project name="BankAccount" default="build"> <target name="build" depends="phpab" /> <target name="phpab" description="Generate autoloader scripts"> <exec executable="phpab"> <arg value="--output" /> <arg path="${basedir}/src/autoload.php" /> <arg value="--template" /> <arg path="${basedir}/build/src_autoload.php.in" /> <arg path="${basedir}/src" /> </exec> <exec executable="phpab"> <arg value="--output" /> <arg path="${basedir}/tests/autoload.php" /> <arg value="--template" /> <arg path="${basedir}/build/tests_autoload.php.in" /> <arg path="${basedir}/tests" /> </exec> </target> </project> s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
A p a c h e A n t b u i l d s c r i p t t h a t i n v o k e s P H P A B > a n t B u i l d f i l e : / h o m e / s b / b a n k a c c o u n t / b u i l d . x m l p h p a b : [ e x e c ] A u t o l o a d f i l e ' s r c / a u t o l o a d . p h p ' g e n e r a t e d . [ e x e c ] [ e x e c ] A u t o l o a d f i l e ' t e s t s / a u t o l o a d . p h p ' g e n e r a t e d . [ e x e c ] b u i l d : B U I L D S U C C E S S F U L T o t a l t i m e : 0 s e c o n d s s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
A p a c h e A n t b u i l d s c r i p t t h a t i n v o k e s P H P U n i t <?xml version="1.0" encoding="UTF-8"?> <project name="BankAccount" default="build"> <target name="build" depends="prepare,phpunit" /> <target name="clean" description="Cleanup build artifacts"> <delete dir="${basedir}/build/coverage" /> <delete dir="${basedir}/build/logs" /> </target> <target name="prepare" depends="clean,phpab" description="Prepare for build"> <mkdir dir="${basedir}/build/coverage" /> <mkdir dir="${basedir}/build/logs" /> </target> <target name="phpab" description="Generate autoloader scripts"> <!-- ... --> </target> <target name="phpunit" description="Run unit tests with PHPUnit"> <exec executable="phpunit" failonerror="true" /> </target> </project> s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
P H P U n i t C o n f i g u r a t i o n <?xml version="1.0" encoding="UTF-8"?> <phpunit bootstrap="tests/autoload.php" backupGlobals="false" backupStaticAttributes="false" strict="true" verbose="true"> <testsuites> <testsuite name="BankAccount"> <directory suffix="Test.php">tests/unit</directory> </testsuite> </testsuites> <logging> <log type="coverage-clover" target="build/logs/clover.xml" /> <log type="coverage-html" target="build/coverage" title="BankAccount" /> <log type="junit" target="build/logs/junit.xml" /> </logging> <filter> <whitelist addUncoveredFilesFromWhitelist="true"> <directory suffix=".php">src</directory> <exclude> <file>src/autoload.php</file> </exclude> </whitelist> </filter> </phpunit> s h a r i n g e x p e r i e n c e s h a r i n g e x p e r i e n c e
Recommend
More recommend