Я получаю странную ошибку при запуске тестов phpunit с использованием ant.
Тесты — это функциональные тесты в среде Symfony, и они работают нормально, если напрямую вызываются на той же машине (используя одного и того же пользователя).
Когда я пытаюсь запустить сборку с помощью ant, автозагрузчик не загружает аннотации Doctrine. Я не уверен, работают ли другие автозагрузки, может быть, аннотации встречаются первыми.
Ошибки похожи на следующее:
Doctrine \ Common \ Annotations \ AnnotationException: [семантическая ошибка] Аннотация «@Doctrine \ ORM \ Mapping \ Column» в свойстве
AppBundle \ Entity \ User :: $ id не существует или не может быть
автоматически загружены.
Вот соответствующая часть build.xml (особо ничего не видно):
<target name="phpunit-xdebug" description="PHPUnit tests with coverage"> <exec executable="${workspace}/bin/phpunit" failonerror="true"> <arg value="-c" /> <arg path="${configdir}/phpunit.xml" /> <arg value="--log-junit" /> <arg path="${builddir}/logs/junit.xml" /> </exec> </target>
Редактировать. Ниже приведен phpuni.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- http://phpunit.de/manual/4.8/en/appendixes.configuration.html -->
<phpunit
backupGlobals = "false"colors = "false"convertErrorsToExceptions = "true"convertNoticesToExceptions = "true"convertWarningsToExceptions = "true"processIsolation = "false"stopOnFailure = "false"syntaxCheck = "false"bootstrap = "/var/lib/jenkins/jobs/project/workspace/var/bootstrap.php.cache">
<testsuites>
<testsuite name="project Test Suite">
<directory>/var/lib/jenkins/jobs/project/workspace/tests</directory>
</testsuite>
</testsuites>
<php>
<server name="KERNEL_DIR" value="/var/lib/jenkins/jobs/project/workspace/app" />
<ini name="xdebug.coverage_enable" value="1" />
</php>
<logging>
<log type="coverage-html" target="/var/lib/jenkins/jobs/project/workspace/build/coverage"/>
<log type="coverage-clover" target="/var/lib/jenkins/jobs/project/workspace/build/logs/clover.xml"/>
<log type="junit" target="/var/lib/jenkins/jobs/project/workspace/build/logs/junit.xml" logIncompleteSkipped="false"/>
</logging>
<filter>
<whitelist>
<directory>/var/lib/jenkins/jobs/project/workspace/src/</directory>
<exclude>
<directory>/var/lib/jenkins/jobs/project/workspace/src/AppBundle/DataFixtures</directory>
</exclude>
</whitelist>
</filter>
<listeners>
<listener class="\DAMA\DoctrineTestBundle\PHPUnit\PHPUnitStaticDbConnectionListener" file="/var/lib/jenkins/jobs/project/workspace/vendor/dama/doctrine-test-bundle/src/DAMA/DoctrineTestBundle/PHPUnit/PHPUnitStaticDbConnectionListener.php" />
</listeners>
</phpunit>
Задача ещё не решена.
Других решений пока нет …