Zend Framework 2对Jenkins的单元测试不起作用

时间:2013-01-27 17:40:27

标签: jenkins phpunit zend-framework2

我有一个zend framework 2项目,我正在尝试设置我的jenkins,以便可以执行单元测试。 Jenkins正在运行ubuntu,我正在使用PHPStorm在Windows 7下进行开发。

的build.xml

<target name="phpunit" description="Run unit tests with PHPUnit">
    <exec executable="phpunit" failonerror="true">
        <arg value="${basedir}/module/Addressbook/test"/>
    </exec>
</target>

文件夹结构:

  • 项目
    • 模块
      • 通讯录
      • 测试
        • AddressbookTest
          • 控制器
            • AddressbookControllerTest.php
          • Boostrap.php
          • phpunit.xml.dist
          • TestConfig.php
    • 的build.xml

Jenkins输出:

phpunit:
     [exec] PHPUnit 3.7.13 by Sebastian Bergmann.
     [exec] 
     [exec] PHP Fatal error:  Class 'AddressbookTest\Bootstrap' not found in /var/lib/jenkins/workspace/Test/src/module/Addressbook/test/AddressbookTest/Controller/AddressbookControllerTest.php on line 28

我的本​​地计算机上的PHPStorm在运行phpunit.xml.dist时执行此操作

D:\Zend\ZendServer\bin\php.exe -d auto_prepend_file=D:/Zend/Apache2/htdocs/demoshop/vendor/autoload.php C:\Users\ChristianB\AppData\Local\Temp\ide-phpunit.php --configuration D:/Zend/Apache2/htdocs/demoshop/module/Addressbook/test/phpunit.xml.dist

我怎样才能将它用于詹金斯?

1 个答案:

答案 0 :(得分:0)

看起来您的包含路径设置不正确,当有更好的选项时,我不会直接使用exec与PHPUNIT。

你应该考虑使用Jenkins的PHING任务,它们可以很好地协同工作。

然后设置Jenking来触发你的PHING目标,通过PHPUNIT任务为你运行单元测试,这是PHPUNIT的示例目标:

<target name="phpunit">
    <phpunit bootstrap="${srcdir}/tests/bootstrap.php">
        <formatter todir="${builddir}/reports" type="xml"/>
        <batchtest>
            <fileset dir="${srcdir}/tests">
                <include name="**/*Test*.php"/>
                <exclude name="**/Abstract*.php"/>
                <exclude name="${srcdir}/vendor/**"/>
            </fileset>
        </batchtest>
    </phpunit>
    <!-- 
        Generate a report from the XML data created.. 
        note: error when using format="frames"
    --> 
    <phpunitreport infile="${builddir}/reports/testsuites.xml" 
        format="noframes" 
        todir="${builddir}/reports/tests"
    />

</target>