Может быть, я чего-то не получаю, но я нигде не мог найти, как изменить каталог выполнения для конкретной цели.
Вот мои настройки:
project
│ composer.json
│ build.xml
└───htdocs
│ phpunit.xml
├───app
│ │ bootstrap.php
│ │ ...
я бегу phing
из папки проекта, но из-за специфики в начальной загрузке phpunit, мне нужно getcwd()
в bootstrap.php для разрешения htdocs
,
В настоящее время я пытался добавить exec
с cd
внутри — но это не похоже на работу.
<target name="phpunit" description="Run unit tests" depends="install">
<!-- move to app root before running tests -->
<exec logoutput="true" command="cd ${app}" />
<phpunit haltonfailure="false"haltonerror="false"printsummary="true"codecoverage="true">
<formatter type="xml" todir="${project.basedir}/build/logs"/>
</phpunit>
<!-- Move back to project root -->
<exec logoutput="true" command="cd ${project.basedir}" />
</target>
Есть ли такая концепция в Phing (чтобы изменить текущий каталог)? Или есть другое возможное решение, чтобы изменить как getcwd()
работает внутри начальной загрузки phpunit?
Вы можете попробовать выполнить phing из htdocs с помощью
phing -f ../build.xml phpunit
Посмотрите на этот пример build.xml:
<project name="Test" basedir="." default="list">
<target name="list">
<getcwd />
</target>
<adhoc-task name="getcwd"><![CDATA[
class GetcwdTask extends Task {
function main() {
print(getcwd());
}
}
]]></adhoc-task>
</project>
Других решений пока нет …