4

您好我目前正在通过 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

谁能告诉我哪里出错了?

4

3 回答 3

0

这是一个非常烦人的错误,有点令人恼火。您的 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

于 2012-11-30T16:14:06.933 回答
0

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

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

于 2013-02-03T20:57:45.380 回答
0

我也有这个问题。

我通过使用以下参数从 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

更多细节在这里

于 2013-10-19T10:56:53.003 回答