2012-02-03 9 views
3

PHPUnitをローカルのWindowsマシンとリモートのLinuxサーバーにインストールしました。 NetBeansからPHPUnitをローカルで実行できます。私の次のステップにPHPUnit.batスクリプトをトリガするNetbeansのを使用して、次のとおりです。 - SSHリモートサーバ に - ランはPHPUnitそこからNetBeans + PHPUnitを使用したリモートサーバでのPHPユニットテスト?

手動では、私はSSHへのplinkを使用して、リモートサーバーのPHPUnitのからの出力を取り戻すことができます走る

これを行うためにPHPUnit.batスクリプトを設定する方法はありますか?

答えて

0

同じ手動手順を実行するには、独自のバッチスクリプトを作成する必要があります。 NetBeans、sshがサーバに渡した引数を取得し、同じパラメータでPHPUnitを実行するのは難しいことではありません。

これはPHPUnitに固有のものではなく、より幅広いサポートを得るために、この質問をターゲットのスクリプト作成者に再投稿する必要があります。

+0

を私は、提案に感謝をしようとするでしょう。 – fred

+0

@fredサンプルバッチスクリプトへのリンクを追加できますか? – corretge

3

これは助けることができる場合は、次のNetBeans 7.4からリモートでのPHPUnitを実行しているため、Windowsのスクリプト:

phpunit.bat

@echo off 
:: ============================================================= 
:: Remote execute phpunit command to VM and downloading result 
:: ============================================================= 
:: - assuming project is replicated remotely (WinSCP ?) 
:: - assuming NetBeansSuite.php file somewhere in remote VM 
:: - using 
::  * PuTTY tools - http://www.chiark.greenend.org.uk/~sgtatham/putty/ 
::  * sed.exe - http://gnuwin32.sourceforge.net/packages/sed.htm 

:: remote serveur PuTTY silent connection (auto-login, key authentication with pageant) 
set REMOTE_SERVER=your_putty_saved_session_name 
:: root path of all local netbeans projects, despecialized for sed 
set LOCAL_WORKSPACE=C:\/Apps\/Wamp\/www 
:: remote path of all projects, despecialized for sed 
set REMOTE_WORKSPACE=\/var\/www\/projects 
:: remote location of NetBeansSuite.php, despecialized for sed 
set REMOTE_NETBEANSSUITE=\/usr\/local\/share\/php\/phpunit\/NetBeansSuite.php 

:: Location of junit log 
set REMOTE_LOG_JUNIT=nb-phpunit-log.xml 
:: Patch params : \ to /, clean log path, change workspace, change NetBeansSuite 
echo %* | sed -e "s/\\/\//g" -e "s/[^ ]*nb-phpunit-log.xml/%REMOTE_LOG_JUNIT%/g" -e "s/%LOCAL_WORKSPACE%/%REMOTE_WORKSPACE%/g" -e "s/[^ ]*NetBeansSuite.php/%REMOTE_NETBEANSSUITE%/g" > %TMP%\res.txt 
set /p PARAMS=<%TMP%\res.txt 

:: Launch phpunit and revert remote path in the output 
echo plink -batch %REMOTE_SERVER% "phpunit %PARAMS% | sed -e 's/%REMOTE_WORKSPACE%/%LOCAL_WORKSPACE%/g' -e 's/\//\\/g'" 
plink -batch %REMOTE_SERVER% "phpunit %PARAMS% | sed -e 's/%REMOTE_WORKSPACE%/%LOCAL_WORKSPACE%/g' -e 's/\//\\/g'" 

:: Download result 
set LOCAL_LOG_JUNIT=%3% 
pscp -q -batch %REMOTE_SERVER%:%REMOTE_LOG_JUNIT% %TMP%\res.txt 

:: Revert remote path to local path in log file (beware of XML ending tag which must not be translated). 
sed -e "s/%REMOTE_WORKSPACE%/%LOCAL_WORKSPACE%/g" -e "s/\([^<]\)\//\1\\/g" %TMP%\res.txt > %LOCAL_LOG_JUNIT% 
関連する問題