2010-06-04 6 views
0

Je n'arrive pas à comprendre pourquoi la cible phpunit ne génère aucun résultat de test même si j'ai des tests en position.cruisecontrol phpunit ne génère aucune sortie

Le problème que je constate est qu'il n'y a aucune indication quant à ce que le problème est! Incroyablement frustrant.

La sortie est la suivante:

<build error="C:\Program Files (x86)\CruiseControl\projects\myProject\build.xml:46: exec returned: 255" time="1 second"> 
    <message priority="debug"><![CDATA[Adding reference: ant.PropertyHelper]]></message> 
    <message priority="debug"><![CDATA[Detected Java version: 1.6 in: C:\Program Files (x86)\Java\jdk1.6.0_18\jre]]></message> 
    <message priority="debug"><![CDATA[Detected OS: Windows Vista]]></message> 
    <message priority="debug"><![CDATA[Adding reference: ant.ComponentHelper]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: XmlLogger.file -> log.xml]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: cclastgoodbuildtimestamp -> 20100604161400]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: cctimestamp -> 20100604194749]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: cvstimestamp -> 2010-06-04 18:47:49 GMT]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: projectname -> myProject]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: buildforced -> true]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: label -> build.153]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: cclastbuildtimestamp -> 20100604192123]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: lastbuildsuccessful -> false]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: ant.file -> C:\Program Files (x86)\CruiseControl\projects\myProject\build.xml]]></message> 
    <message priority="debug"><![CDATA[Adding reference: ant.projectHelper]]></message> 
    <message priority="debug"><![CDATA[Adding reference: ant.parsing.context]]></message> 
    <message priority="debug"><![CDATA[Adding reference: ant.targets]]></message> 
    <message priority="debug"><![CDATA[parsing buildfile C:\Program Files (x86)\CruiseControl\projects\myProject\build.xml with URI = file:/C:/Program%20Files%20(x86)/CruiseControl/projects/myProject/build.xml]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: ant.project.name -> binarydreams]]></message> 
    <message priority="debug"><![CDATA[Adding reference: myProject]]></message> 
    <message priority="debug"><![CDATA[Setting ro project property: ant.file.myProject-> C:\Program Files (x86)\CruiseControl\projects\myProject\build.xml]]></message> 
    <message priority="debug"><![CDATA[Project base dir set to: C:\Program Files (x86)\CruiseControl\projects\myProject]]></message> 
    <message priority="debug"><![CDATA[ +Target: ]]></message> 
    <message priority="debug"><![CDATA[ +Target: build]]></message> 
    <message priority="debug"><![CDATA[ +Target: phpunit]]></message> 
    <message priority="debug"><![CDATA[Attempting to create object of type org.apache.tools.ant.helper.DefaultExecutor]]></message> 
    <message priority="debug"><![CDATA[Adding reference: ant.executor]]></message> 
    <message priority="debug"><![CDATA[Build sequence for target(s) `build' is [phpunit, build]]]></message> 
    <message priority="debug"><![CDATA[Complete build sequence is [phpunit, build, ]]]></message> 
    <message priority="debug"><![CDATA[Could not load definitions from resource org/apache/tools/ant/antlib.xml. It could not be found.]]></message> 
    <message priority="debug"><![CDATA[Execute:Java13CommandLauncher: Executing 'phpunit.bat' with arguments: 
'--log-junit' 
'C:\Program Files (x86)\CruiseControl\projects\myProject/build/logs/phpunit.xml' 
'--coverage-clover' 
'C:\Program Files (x86)\CruiseControl\projects\myProject/build/logs/phpunit.coverage.xml' 
'--coverage-html' 
'C:\Program Files (x86)\CruiseControl\projects\myProject/build/coverage' 
'tests/' 

The ' characters around the executable and arguments are 
not part of the command.]]></message> 
    <target name="phpunit" time="1 second"> 
     <task location="C:\Program Files (x86)\CruiseControl\projects\myProject\build.xml:46: " name="exec" time="1 second"> 
     <message priority="debug"><![CDATA[Current OS is Windows Vista]]></message> 
     <message priority="debug"><![CDATA[Executing 'phpunit.bat' with arguments: 
'--log-junit' 
'C:\Program Files (x86)\CruiseControl\projects\myProject/build/logs/phpunit.xml' 
'--coverage-clover' 
'C:\Program Files (x86)\CruiseControl\projects\myProject/build/logs/phpunit.coverage.xml' 
'--coverage-html' 
'C:\Program Files (x86)\CruiseControl\projects\myProject/build/coverage' 
'tests/' 

The ' characters around the executable and arguments are 
not part of the command.]]></message> 
     </task> 
    </target> 
    <stacktrace><![CDATA[C:\Program Files (x86)\CruiseControl\projects\myProject\build.xml:46: exec returned: 255 
    at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:636) 
    at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:662) 
    at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:487) 
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105) 
    at org.apache.tools.ant.Task.perform(Task.java:348) 
    at org.apache.tools.ant.Target.execute(Target.java:357) 
    at org.apache.tools.ant.Target.performTasks(Target.java:385) 
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329) 
    at org.apache.tools.ant.Project.executeTarget(Project.java:1298) 
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181) 
    at org.apache.tools.ant.Main.runBuild(Main.java:698) 
    at org.apache.tools.ant.Main.startAnt(Main.java:199) 
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257) 
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104) 
]]></stacktrace> 
    </build> 

Mon build.xml est la suivante:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="myProject" default="build" basedir="."> 

    <target name="build" depends="phpunit"/> 

    <target name="phpunit"> 
    <exec executable="phpunit.bat" dir="${basedir}/source" failonerror="on"> 
     <arg line="--log-junit '${basedir}/build/logs/phpunit.xml' 
      --coverage-clover '${basedir}/build/logs/phpunit.coverage.xml' 
      --coverage-html '${basedir}/build/coverage' tests/" /> 
    </exec> 
    </target> 

</project> 

Mon système: Vista, PHP 5.2.9, PHPUnit 3.4, phpUnderControl, CruiseControl

+0

Essayez d'exécuter les tests dans la ligne de commande exactement comme cela est fait dans la construction – nuqqsa

Répondre

0

nuqqsa:

Oui, les fichiers journaux attendus n'apparaissent pas. Les tests semblent être exécutés bien que j'ai dû réparer mes chemins require_once.

Dans l'invite de commande que je ferais ce qui suit dans mon dossier source:

phpunit.bat --log-junit "C:\Program Files(x86)\CruiseControl\projects\myProject/build/logs/phpunit.xml" 
--coverage-clover "C:\Program Files(x86)\CruiseControl\projects\myProject/build/logs/phpunit.coverage.xml" 
--coverage-html "C:\Program Files(x86)\CruiseControl\projects\myProject/build/coverage" tests/ 

je l'espère, il n'y a rien à voir avec l'espace dans le chemin ou les barres obliques l'autre moitié des chemins.

J'ai réfléchi. J'ai débogué (using PHPEdit) en exécutant la construction et PHPUnit semble être exécuté mais je n'ai pas mis un point d'arrêt dans aucun des tests pour voir s'ils sont exécutés. Je le ferai quand je rentrerai à la maison et ferai rapport.

+0

Bizarre, je m'attendrais à ce que vous voyiez la progression des tests en sortie à l'écran lors de l'exécution de cette commande, même si je ne sais pas si Windows ce comportement est différent (?). En ce qui concerne le chemin du fichier, essayez d'utiliser un non-difficile juste pour tester si c'est le problème. – nuqqsa

1

J'ai eu le même problème: lors de tests à l'aide de runing build.xml de projet cruisecontrol je devenais le résultat attendu:

[email protected]:$ cd cruisecontrol/projects/myproject/ 
    [email protected]:$ ../../apache-ant-1.7.0/bin/ant phpunit 
    ... this created correct unit-tests output 

Mais quand on regarde via le navigateur phpUnderControl il montrais que 0 tests.

J'ai trouvé que cela était dû au fait que les chemins corrects n'étaient pas configurés pour les éditeurs dans le fichier config.xml de cruisecontrol.

Voici mon exemple qui fonctionne:

<log dir="logs/${project.name}"> 
    <merge dir="projects/${project.name}/build/logs/"></merge> 
</log> 
<publishers> 
    <artifactspublisher dir="projects/${project.name}/build/coverage" dest="artifacts/${project.name}" subdirectory="coverage"></artifactspublisher> 
    <execute command="phpuc graph logs/${project.name} artifacts/${project.name}"></execute> 
</publishers> 

Hope this helps!

Questions connexes