2012-08-06 8 views
5

私は最近SlimのマイクロフレームワークMy Behatテストをうまく使っているPHPプロジェクトで、とMinkを使い始めましたが、Sebastian BergmannのJenkins-PHPテンプレートを使ったビルドの一部として実行したいと思います。ジェンキンスと一緒にBehat - PHPアプリケーションを提供する方法?

これを行うには、Slimアプリケーションを提供するためにWebサーバーを実行する必要があります。明らかな答えはPHP 5.4のWebサーバーに組み込まれているようですが、PHP 5.3に制限されています。

私は現時点で唯一のアイデアは、AntのビルドがパスするとJenkinsがサーバー上にワークスペースを配置し、それに対してBehatテストを実行するデプロイ段階を持つことです。これは、多くの作業になる可能性があり、薄れている可能性があります。また、別のVMをスピンアップする必要があります。回避することをお勧めします。私たちは多数の多様なプロジェクトにBehatを雇用することを検討しています。そのため、「使い捨て」が望ましいでしょう。

この問題を解決する最善の方法は何ですか?

答えて

7

ヤクブが提案のように、我々は最終的に一緒に行った解決策がずっとある - 私たちのジェンキンスインスタンスは、次のようなスクリプトのものを使用して、Behatを使用する各ワークスペースのconf.dにApacheのバーチャルホストファイルを生成します。

# Set up a host file entry if none exists 
hostFileEntry="127.0.0.1 ${JOB_NAME}.loc" 
if fgrep -i "$hostFileEntry" /etc/hosts 
then 
     echo "${hostFileEntry}" already in hosts file 
else 
     echo $hostFileEntry >> /etc/hosts 
fi 

# Set up a virtual host for this job 
echo "<VirtualHost *:80>" > /etc/httpd/conf.d/${JOB_NAME}.conf 
echo " ServerName ${JOB_NAME}.loc" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo " DocumentRoot ${WORKSPACE}/public" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "  <Directory ${WORKSPACE}/public>" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "   AllowOverride all" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "   Order allow,deny" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "   Allow from all" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "  </Directory>" >> /etc/httpd/conf.d/${JOB_NAME}.conf 
echo "</VirtualHost>" >> /etc/httpd/conf.d/${JOB_NAME}.conf 

# Reload Apache 
sudo /sbin/service httpd reload 

これらのワークスペースに対してBehatを実行し、JUnit形式で出力し、結果をビルドと統合します。アクセス許可を微調整する必要がありましたが、これは非常にうまく動作しています。ご協力いただきありがとうございます:-)

+0

ありがとうございます。私はこのスクリプトを埋め込んだパッケージを提供することでこの解決策を試しています。それはすべてのサーバーのディストリビューションに抽象的ではありませんが、そのアイデアはここにあります。 https://github.com/prestaconcept/meta-ci。 – DEY

1

別のオプションは、(symfonyは1を持っているだけのように)ミンクのためのスリムなフレームワークドライバを実装することになります。 javascriptのシナリオがない限り、シナリオを実行するためにWebサーバーは必要ありません。

JavaScriptのシナリオでは、単に私のjenkinsインスタンスにWebサーバーとPHPをインストールしました。仮想ホストはビルドの一部として作成され、ジンキンのワークスペースを指します。

+0

ありがとう、どちらも素晴らしい提案です –

0

PHP 5.3で迷惑メールサーバーを展開できます。それは「別のVM」ですが、使い捨てです。

関連する問題