2010-06-04 8 views
0

Я не могу понять, почему цель phpunit не выводит никаких результатов теста, хотя у меня есть тесты в позиции.cruisecontrol phpunit не создает выход

Проблема, которую я нахожу, не является указанием на то, что проблема! Невероятно разочаровывает.

Выход следующим образом:

<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> 

Мой build.xml выглядит следующим образом:

<?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> 

Моя система: Виста, PHP 5.2.9, PHPUnit 3,4, PHPUnderControl, CruiseControl

+0

Попробуйте выполнить тесты в командной строке точно так же, как это сделано в сборке – nuqqsa

ответ

0

nuqqsa:

Да, ожидаемые файлы журнала не отображаются. Тесты, похоже, выполняются, хотя мне пришлось исправить мои пути require_once.

В командной строке я бы сделать следующее в моей исходной папке:

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/ 

Я надеюсь, что это не имеет ничего общего с пространством, в пути или косой черты другая половина пути.

У меня была мысль. Я отлаживал (используя PHPEdit) при запуске сборки, и PHPUnit, похоже, выполняется, но я не поставил точку останова в любом из тестов, чтобы убедиться, что они выполнены. Я сделаю это, когда вернусь домой и отчитаюсь.

+0

Странно, я ожидаю, что вы увидите, как результаты тестов выводятся на экран при выполнении этой команды, хотя я и не знаю, Windows это поведение отличается (?). Что касается пути к файлу, попробуйте использовать нехитрый вариант, чтобы проверить, является ли это проблемой. – nuqqsa

1

У меня была та же проблема: когда подножка тесты с использованием build.xml проекта CruiseControl, я получаю ожидаемый результат:

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

Но при взгляде через PHPUnderControl браузер он отображался как 0 тестов.

Я обнаружил, что это произошло из-за отсутствия правильных путей для издателей в config.xml cruisecontrol.

Вот мой пример, который работает:

<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> 

Надеется, что это помогает!

 Смежные вопросы

  • Нет связанных вопросов^_^