2012-02-03 77 views
3

我已经在本地Windows机器和远程Linux服务器上安装了PHPUnit。我能够从Netbeans本地运行PHPUnit。我的下一步是,使用NetBeans触发PHPUnit.bat脚本: - SSH远程服务器 - 运行PHPUnit的从那里PHP在Netbeans + PHPUnit远程服务器上进行单元测试,可能吗?

手动,我可以用砰砰到SSH和取回从远程服务器的PHPUnit的输出跑。

关于如何配置PHPUnit.bat脚本来做到这一点的任何想法?

回答

0

您需要编写自己的批处理脚本来执行相同的手动步骤。捕获NetBeans传递的参数,ssh到服务器,并使用相同的参数执行PHPUnit应该不会太困难。

由于这不是PHPUnit所特有的,为了获得更广泛的支持,您应该重新发布此问题以将脚本编写者作为目标。

+0

我会尽力,感谢您的建议。 – fred 2012-02-05 05:23:51

+0

@fred你可以添加一个链接到示例批处理脚本? – corretge 2012-07-31 09:13:11

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% 
相关问题