如何测试我的应用程序中的每个模块phpunit - zend framework 2

时间:2013-09-26 14:10:20

标签: php testing jenkins zend-framework2 phpunit

我已经为我的应用程序模块和其他模块进行了测试。他们工作正常,但我想运行所有测试(应用程序模块和其他模块)toguether来生成jenkins的三叶草报告。我该怎么办??创建另一个配置文件来调用其他配置文件??

--- ---编辑

我对每个模块bootstrap.php都有相同的代码,我想为每个模块使用相同的代码以避免代码重复。 Rigth现在我有两个模块应用程序和问题当我运行phpunit它会抛出这个错误:

**.PHP Fatal error:  Class 'ProblemTest\Bootstrap' not found ....**

Application模块的测试工作正常,但Problem模块的测试不适用于 phpunit_bootstrap.php 文件中的名称空间声明。

我的应用程序测试使用此声明:

<?php
   namespace ApplicationTest\Controller;
   use ApplicationTest\Bootstrap; ....

我的问题测试使用此声明:

<?php
    namespace ProblemTest\Controller;
    use ProblemTest\Bootstrap;

这是我的phpunit.xml

<phpunit bootstrap="phpunit_bootstrap.php">
<testsuites>
    <testsuite name="ALL">
        <directory>module/Application/test</directory>
        <directory>module/Problem/test</directory>
    </testsuite>
</testsuites>

这是我的phpunit_bootstrap.php

<?php
 namespace ApplicationTest;

我现在运行所有测试toguether的问题是如何为每个测试包含相同的引导程序以避免该异常。

2 个答案:

答案 0 :(得分:3)

您可以制作一个测试套件,一次运行一组单独的测试。在你的phpunit.xml.dist文件中:

<phpunit bootstrap="phpunit_bootstrap.php">
    <testsuites>
        <testsuite name="all">
            <directory>./</directory>
        </testsuite>
        <testsuite name="ALL">
            <directory>/path/to/module1tests</directory>
            <directory>/path/to/module2tests</directory>
            <directory>/path/to/module3tests</directory>
            <exclude>/path/to/module4tests</exclude>
        </testsuite>
        <testsuite name="module1only">
            <directory>./module1tests</directory>
        </testsuite>
    </testsuites>

然后你可以运行它:/ path / to / phpunit --testsuite =“ALL”

答案 1 :(得分:1)

我无法发表评论,因此可以在zend framework 2 + phpunit + multiple modules + continuous integration找到此问题的另一种解决方案。如果您不想单独命名每个模块。