<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>continuous integration | Nerdpress.org</title>
	<atom:link href="https://nerdpress.org/tag/continuous-integration/feed/" rel="self" type="application/rss+xml" />
	<link>https://nerdpress.org</link>
	<description>...dev, tech problems and solutions.</description>
	<lastBuildDate>Sun, 14 Nov 2010 15:03:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Selenium functional tests mit PHPUnit</title>
		<link>https://nerdpress.org/2010/11/14/selenium-functional-tests-mit-phpunit/</link>
					<comments>https://nerdpress.org/2010/11/14/selenium-functional-tests-mit-phpunit/#comments</comments>
		
		<dc:creator><![CDATA[Max Girkens]]></dc:creator>
		<pubDate>Sun, 14 Nov 2010 15:03:14 +0000</pubDate>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[PHP 5.3]]></category>
		<category><![CDATA[PHPUnit]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[sfPhpunitPlugin]]></category>
		<category><![CDATA[test driven developement]]></category>
		<category><![CDATA[testing]]></category>
		<guid isPermaLink="false">https://nerdpress.org/?p=1193</guid>

					<description><![CDATA[<p>PHPUnit hat coolerweise eine Extension für Selenium Tests. Dafür braucht man noch den PHP Client für die Selenium Remote Control. Bei mir auf Debian Lenny, bzw. Mac OSX musste ich noch den include_path dafür anpassen, damit phpunit Testing/Selenium.php gefunden hat. Damit kann man mit PHP komfortabel einen Selenium Test Server über die Selenium RC ansprechen, &#8230; </p>
<p class="link-more"><a href="https://nerdpress.org/2010/11/14/selenium-functional-tests-mit-phpunit/" class="more-link">Continue reading<span class="screen-reader-text"> "Selenium functional tests mit PHPUnit"</span></a></p>
The post <a href="https://nerdpress.org/2010/11/14/selenium-functional-tests-mit-phpunit/">Selenium functional tests mit PHPUnit</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.phpunit.de/">PHPUnit</a> hat coolerweise eine <a href="https://github.com/sebastianbergmann/phpunit-selenium">Extension</a> für <a href="http://seleniumhq.org/">Selenium</a> Tests.</p>
<p>Dafür braucht man noch den PHP Client für die Selenium Remote Control.</p>
<pre class="brush: bash; title: ; notranslate">
pear install Testing_Selenium-0.4.3
</pre>
<p>Bei mir auf Debian Lenny, bzw. Mac OSX musste ich noch den include_path dafür anpassen,<br />
damit phpunit Testing/Selenium.php gefunden hat.</p>
<p>Damit kann man mit PHP komfortabel einen Selenium Test Server über die <a href="http://seleniumhq.org/docs/05_selenium_rc.html">Selenium RC</a> ansprechen,<br />
der dann beliebige Browser für functional Tests benutzt.</p>
<p>Der Selenium Server ist auch im Prinzip <a href="http://seleniumhq.org/docs/05_selenium_rc.html#installation">schnell</a> installiert<br />
und lokal ist das ganze einigermaßen unproblematisch, weil man ja schon mal die Browser seines OS zur Verfügung hat.</p>
<p>In einem Continuous Integration Setup möchte man aber vielleicht Selenium lieber auf einem Web Server laufen lassen.</p>
<p>Da sieht es dann erstmal weniger gut aus mit Browser executables.<br />
Was also tun?</p>
<p><span id="more-1193"></span></p>
<p>Eine Möglichkeit ist <a href="http://saucelabs.com/">saucelabs.com</a>.<br />
Die bieten &#8220;Cross browser testing with Selenium in the cloud&#8221; an.<br />
Sogar gratis für Firefox unter Linux.<br />
Für die anderen Browser und OS muss man dann schon auf einen bezahlten Account umsteigen.</p>
<p>Dann einfach den saucelabs Selenium Server mit oben erwähnter Extension aus PHPUnit ansprechen:</p>
<p><em>Das Example.php Script von saucelabs</em></p>
<pre class="brush: php; title: ; notranslate">
require_once 'Testing/Selenium.php';
require_once 'PHPUnit/Framework/TestCase.php';

class Example extends PHPUnit_Framework_TestCase
{
    private $selenium;

    public function setUp()
    {
        $this-&gt;selenium = new Testing_Selenium(
            json_encode(array(
                &quot;username&quot; =&gt; &quot;YOUR_USERNAME&quot;,
                &quot;access-key&quot; =&gt; &quot;YOUR_ACCESS_KEY&quot;,
                &quot;os&quot; =&gt; &quot;Windows 2003&quot;, 
                &quot;browser&quot; =&gt; &quot;firefox&quot;,
                &quot;browser-version&quot; =&gt; &quot;3.6.&quot;,
                &quot;name&quot; =&gt; $this-&gt;getName()
            )),
            &quot;http://saucelabs.com&quot;, 
            &quot;ondemand.saucelabs.com&quot;,
            80,
            90000);
        $this-&gt;selenium-&gt;start();
    }

    public function tearDown()
    {
        $this-&gt;selenium-&gt;stop();
    }

    public function testSauce()
    {
        $this-&gt;selenium-&gt;open(&quot;/&quot;);
        $this-&gt;assertEquals(&quot;Cross browser testing with Selenium - Sauce Labs&quot;,
                            $this-&gt;selenium-&gt;getTitle());
    }

}
</pre>
<p>und PHPUnit macht Selenium Tests:</p>
<pre class="brush: bash; title: ; notranslate">
phpunit Example.php
</pre>
<p>:)</p>The post <a href="https://nerdpress.org/2010/11/14/selenium-functional-tests-mit-phpunit/">Selenium functional tests mit PHPUnit</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></content:encoded>
					
					<wfw:commentRss>https://nerdpress.org/2010/11/14/selenium-functional-tests-mit-phpunit/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>symfony 1.4 &#8211; automatisierte builds</title>
		<link>https://nerdpress.org/2010/11/12/symfony-1-4-automatisierte-builds/</link>
		
		<dc:creator><![CDATA[Max Girkens]]></dc:creator>
		<pubDate>Fri, 12 Nov 2010 09:48:11 +0000</pubDate>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[Shell]]></category>
		<guid isPermaLink="false">https://nerdpress.org/?p=1158</guid>

					<description><![CDATA[<p>Hier mal ein Beispiel für einen (via shell script) automatisierten build bei einer PHP, Symfony 1.4 Anwendung mit GIT zur Versionskontrolle. #wipe old version of build db mysql -uUSER -pPW drop build-db #wipe the build workspace rm -rf ./build-workspace #checkout the sourcecode git clone git@my-domain.com:my-repository ./build-workspace cd build-workspace #(re)configure database for build server php ./symfony &#8230; </p>
<p class="link-more"><a href="https://nerdpress.org/2010/11/12/symfony-1-4-automatisierte-builds/" class="more-link">Continue reading<span class="screen-reader-text"> "symfony 1.4 &#8211; automatisierte builds"</span></a></p>
The post <a href="https://nerdpress.org/2010/11/12/symfony-1-4-automatisierte-builds/">symfony 1.4 – automatisierte builds</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></description>
										<content:encoded><![CDATA[<p>Hier mal ein Beispiel für einen (via shell script) automatisierten build bei einer PHP, Symfony 1.4 Anwendung mit GIT zur Versionskontrolle.</p>
<pre class="brush: bash; title: ; notranslate">
#wipe old version of build db
mysql -uUSER -pPW drop build-db
</pre>
<pre class="brush: bash; title: ; notranslate">
#wipe the build workspace
rm -rf ./build-workspace
</pre>
<pre class="brush: bash; title: ; notranslate">
#checkout the sourcecode
git clone git@my-domain.com:my-repository ./build-workspace
</pre>
<pre class="brush: bash; title: ; notranslate">
cd build-workspace
</pre>
<p><span id="more-1158"></span></p>
<pre class="brush: bash; title: ; notranslate">
#(re)configure database for build server
php ./symfony configure:database &quot;mysql:host=build-db-server;dbname=build-server-sql-user&quot;
</pre>
<pre class="brush: bash; title: ; notranslate">
#(re)build db
php ./symfony doctrine:build-db
</pre>
<p>der Einfachkeit halber liegt der zu migrierende sql dump schon im repository.<br />
Könnte man natürlich auch jetzt von remote holen.</p>
<pre class="brush: bash; title: ; notranslate">
#import some test data
mysql -uUSER -pPW --force database_name &lt; data/sql/some_data_to_migrate.sql
</pre>
<p>hier sollte keine Handarbeit mehr nötig sein,<br />
da man ja alle DB Änderungen per <a href="http://www.doctrine-project.org/projects/orm/1.2/docs/manual/migrations/en">doctrine migrations</a> gemacht hat.<br />
Im Gegensatz zu schema Änderungen bleibt man so abwärtskompatibel zu Vorgängerversionen.</p>
<pre class="brush: bash; title: ; notranslate">
#migrate the test data / db if necessary
php ./symfony doctrine:migrate
</pre>
<p>zum guten Schluss alles testen</p>
<pre class="brush: bash; title: ; notranslate">
#run test, save results as xml
php ./symfony test:all -xml=path/to/results.xml
</pre>
<p>Es lohnt sich in mehrfacher Hinsicht wirklich das komplette Projekt inkl. DB automatisiert von 0 installierbar zu machen.<br />
Auch wenn es vielleicht erstmal nur auf ein paar Instanzen laufen soll.</p>
<p>Man kann erstens bei verteiltem Arbeiten schnell mal eine weitere Arbeitskopie auf einem anderen Rechner erstellen.</p>
<p>Zweitens kann man relativ <a href="http://prendreuncafe.com/blog/post/2009/10/06/Simple-Continuous-Integration-of-a-Symfony-Project-using-Hudson">einfach</a> ein continuous integration setup auf die Beine stellen und sofort ruhiger schlafen ;)</p>
<p>Außerdem kann man ständig die Migration von aktuellen Live Daten, oder einer Vorgängerversion in die Entwicklungsversion testen.<br />
&#8220;Continuous Migration&#8221; ;)</p>The post <a href="https://nerdpress.org/2010/11/12/symfony-1-4-automatisierte-builds/">symfony 1.4 – automatisierte builds</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
