Модульное тестирование PHP на удаленном сервере с Netbeans + PHPUnit, возможно? - PullRequest
3 голосов
/ 03 февраля 2012

У меня установлен PHPUnit как на локальной машине с Windows, так и на удаленном Linuxserver. Я могу запустить PHPUnit локально из NetBeans. Мой следующий шаг - использование Netbeans для запуска сценария PHPUnit.bat: - SSH к удаленному серверу - Запустите PHPUnit оттуда

Вручную, я могу использовать PLink для SSH и получить результат от запуска PHPUnit удаленного сервера.

Любые идеи о том, как настроить скрипт PHPUnit.bat для этого?

Ответы [ 2 ]

3 голосов
/ 14 марта 2014

Если это может помочь: Windows-скрипт для удаленного запуска phpunit из netbeans 7.4:

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%
0 голосов
/ 04 февраля 2012

Вам нужно будет написать свой собственный пакетный скрипт, чтобы выполнить те же самые шаги вручную. Не должно быть слишком сложно перехватить аргументы, переданные NetBeans, ssh на сервер, и выполнить PHPUnit с теми же параметрами.

Поскольку это не относится только к PHPUnit и для более широкой поддержки, вы должны отправить этот вопрос репортерам целевых сценариев.

...