【问题标题】:Zend Framework 2 PHPUnit Test ErrorZend Framework 2 PHPUnit 测试错误
【发布时间】:2012-11-18 21:01:32
【问题描述】:

您好,我目前正在通过 ZF2 用户指南尝试在骨架应用程序上运行 PHPUnit 测试,如此处所述http://zf2.readthedocs.org/en/latest/user-guide/unit-testing.html

但即使我没有编辑模块并且每次在 Zend Studio 中运行 PHPUnit 测试时都从教程中复制了所有文件,我也会收到此错误

错误:

Fatal error: Class 'ApplicationTest\Bootstrap' not found in C:\Program Files (x86)\Zend\Apache2\htdocs\exerciseDB\module\Application\test\ApplicationTest\Controller\IndexControllerTest.php on line 24

但是当我点击 Bootstrap::getServiceManager();在第 24 行 Zend Studio 将我带到正确的方法。

文件结构:

module
|_Application
    |_config
    |_language
    |_src
    |_test
       |_ApplicationTest
       |    |_Controller
       |        |_IndexControllerTest.php
       |_Bootstrap.php
       |_phpunit.xml.dist
       |_TestConfig.php.dist

谁能告诉我哪里出错了?

【问题讨论】:

    标签: php phpunit zend-framework2 fatal-error


    【解决方案1】:

    这是一个非常烦人的错误,有点令人恼火。您的 phpunit 配置似乎与骨架应用程序上的配置略有不同。为了给你直接的答案来解决我的问题,我做了以下......

    module
    |_Application
        |_config
        |_language
        |_src
        |_tests
           |_ZendApplicationModule
           |    |_Framework
           |        |TestCase.php
           |    |_IndexControllerTest.php
           |    |_SampleTest.php
           |_Bootstrap.php
           |_phpunit.xml.dist
           |_TestConfig.php.dist
    

    使用上述骨架应用程序的基本设置,我必须添加

    require_once 'Framework/TestCase.php';
    

    到 SampleTest.php

    对于您的实际修复,您需要 require_once 生成问题的文件。那应该可以解决它。

    还要确保更新您的 autoload_classmap.php

    【讨论】:

    • 感谢您的快速回复。在本教程zf2.readthedocs.org/en/latest/user-guide/unit-testing.html 中,我没有看到名为 SampleTest.php 或 TestCase.php 的文件。你能指出我在哪里可以找到这些文件的示例副本吗
    • 啊,我是根据我最近做的 git checkout 去的。让我看看他们的代码。
    • 我刚刚 100% 复制了他们的代码,它根据您提供的页面运行。您是在 *nix 机器上还是在 Windows 机器上运行 phpunit?可能是路径问题,抱歉,我没有要测试的窗口。
    • 我在 Zend Studio 的 Windows 环境中运行它。周末我会设置一个Linux环境并进行测试。感谢你的帮助。非常感谢。
    • 不客气,对不起,我帮不上忙,但我无法在您的实例上重现,当我过去完成测试时,需要一次问题修复了我的课程然而,根据实际在 *nix env 上运行的应用程序发现,我怀疑这是 Windows 路径和测试引导方式的问题。但在这一点上,它只是猜测
    【解决方案2】:

    我遇到了同样的问题,phpunit 没有看到我的“module/Application/test/phpunit.xml.dist”文件(我拼错了)

    尝试将文件直接添加到命令行: phpunit --bootstrap Bootstrap.php .

    【讨论】:

      【解决方案3】:

      我也有这个问题。

      我通过使用以下参数从我的 ZF2 项目的根目录运行 phpunit 解决了这个问题:

       ./vendor/bin/phpunit
        --bootstrap ./module/Rest/test/Bootstrap.php
      

      还可以指定要使用的测试套件:

       ./vendor/bin/phpunit
        --bootstrap ./module/Rest/test/Bootstrap.php
        ./module/Rest/test/RestTest/Controller/RestControllerTest.php
      

      更多详情here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-20
        • 2015-07-26
        • 1970-01-01
        • 1970-01-01
        • 2012-12-25
        • 1970-01-01
        • 2011-03-04
        相关资源
        最近更新 更多