^如何配置 phing build.xml 以使用 drupal aotoloader

^How to configure phing build.xml to use drupal aotoloader

提问人:Ngouffo Doric Tsappi 提问时间:7/4/2019 最后编辑:cweiskeNgouffo Doric Tsappi 更新时间:11/25/2019 访问量:91

问:

我已经在我的drupal 8路径的根目录上做了一个build.xml,当我在我的phpunit测试上运行./vendor/bin/phing以将xml日志转换为html时,我没有预期的结果。那么我该如何修改我的构建.xml

这里给我灵感的链接 https://cweiske.de/tagebuch/visualizing-phpunit-runs.htm

我的构建.xml

<project name="svie_tarificateur_report" default="spheria-report" basedir=".">
    <!--<taskdef name="myecho" classname="MyEchoTask" />-->
 <target name="spheria-report">
     <echo msg="Hello, Doric!" />
     <autoloader autoloaderpath="./autoload.php"/>
  <phpunitreport infile="log.junit.xml"
                 format="frames"
                 todir="html"
                 styledir="/usr/share/php/data/phing/etc/"
                 />
 </target>
</project>

我的 phpunit 日志

<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
  <testsuite name="modules/custom" tests="2" assertions="2" errors="0" failures="0" skipped="0" time="0.008327">
    <testsuite name="Drupal\Tests\svie_tarificateur\Unit\CalculateurTest" file="/var/www/html/modules/custom/svie_tarificateur/tests/src/Unit/CalculateurTest.php" tests="2" assertions="2" errors="0" failures="0" skipped="0" time="0.008327">
      <testcase name="testAgeSouscription" class="Drupal\Tests\svie_tarificateur\Unit\CalculateurTest" classname="Drupal.Tests.svie_tarificateur.Unit.CalculateurTest" file="/var/www/html/modules/custom/svie_tarificateur/tests/src/Unit/CalculateurTest.php" line="43" assertions="1" time="0.008219"/>
      <testcase name="testAssureNo" class="Drupal\Tests\svie_tarificateur\Unit\CalculateurTest" classname="Drupal.Tests.svie_tarificateur.Unit.CalculateurTest" file="/var/www/html/modules/custom/svie_tarificateur/tests/src/Unit/CalculateurTest.php" line="50" assertions="1" time="0.000108"/>
    </testsuite>
  </testsuite>
</testsuites>

我希望有一个生成的html,但我有这个错误

[root@d15936c9eaa8 html]# ./vendor/bin/phing 
Buildfile: /var/www/html/build.xml

svie_tarificateur_report > spheria-report:

     [echo] Hello, Doric!
[autoloader] Loading autoloader from ./autoload.php

BUILD FAILED
ReflectionException: Class Drupal\Tests\svie_tarificateur\Unit\CalculateurTest does not exist in /var/www/html/vendor/phing/phing/classes/phing/tasks/ext/phpunit/PHPUnitReportTask.php:229
Stack trace:
#0 /var/www/html/vendor/phing/phing/classes/phing/tasks/ext/phpunit/PHPUnitReportTask.php(229): ReflectionClass->__construct('Drupal\\Tests\\sv...')
#1 /var/www/html/vendor/phing/phing/classes/phing/tasks/ext/phpunit/PHPUnitReportTask.php(269): PHPUnitReportTask->fixDocument(Object(DOMDocument))
#2 /var/www/html/vendor/phing/phing/classes/phing/UnknownElement.php(100): PHPUnitReportTask->main()
#3 /var/www/html/vendor/phing/phing/classes/phing/Task.php(283): UnknownElement->main()
#4 /var/www/html/vendor/phing/phing/classes/phing/Target.php(336): Task->perform()
#5 /var/www/html/vendor/phing/phing/classes/phing/Target.php(366): Target->main()
#6 /var/www/html/vendor/phing/phing/classes/phing/Project.php(898): Target->performTasks()
#7 /var/www/html/vendor/phing/phing/classes/phing/Project.php(868): Project->executeTarget('spheria-report')
#8 /var/www/html/vendor/phing/phing/classes/phing/Phing.php(723): Project->executeTargets(Array)
#9 /var/www/html/vendor/phing/phing/classes/phing/Phing.php(200): Phing->runBuild()
#10 /var/www/html/vendor/phing/phing/classes/phing/Phing.php(347): Phing::start(Array, NULL)
#11 /var/www/html/vendor/phing/phing/bin/phing.php(58): Phing::fire(Array)
#12 /var/www/html/vendor/phing/phing/bin/phing(14): require_once('/var/www/html/v...')
#13 {main}
Total time: 0.1182 seconds

因为它找不到我的Drupal类

drupal-8 phing phpunit

评论

0赞 Siad Ardroumli 9/1/2019
请分享您和您的课程内容。它似乎有错误的命名空间或错误的自动加载文件。autoload.phpDrupal\Tests\svie_tarificateur\Unit\CalculateurTest

答:

0赞 jawira 11/25/2019 #1

如果您使用的是 Composer,则该文件位于供应商目录中,请尝试如下操作:autoload.php

<autoloader autoloaderpath="vendor/autoload.php"/>