【问题标题】:PHPUnit 3.6.10 + ZendFramework 1.11.11 + NetBeans 7.1PHPUnit 3.6.10 + ZendFramework 1.11.11 + NetBeans 7.1
【发布时间】:2012-04-24 01:12:47
【问题描述】:

当我通过 Zend_Tool 创建一个控制器时 命令:

create controller NameController

... netbeans 成功创建了一个新控制器。但是,它会在输出窗口中发送一条消息:

PHPUnit is required in order to generate controller test stubs.

如何让 Netbeans 自动创建一个带有 phpunit 测试的类?我搜索了网络和数千个解决方案到目前为止无法解决...

重要提示:

  • 已经安装了pear
  • 已经安装了phpunit
  • 已在 include_path 中包含“phpunit”
  • 已经创建了一个文件,并且在 include_path 中也包含了 zf.ini
  • options已经配置了netbeans,这里我通知了phpunit.bat目录。

这是 NetBeans 中的错误吗?

见:

【问题讨论】:

标签: zend-framework phpunit wamp


【解决方案1】:

我不认为这是一个 Neatbeans 问题,因为它是 Zend_Tool (zf.bat) 问题。
在正确安装 phpunit 之前,您可能正在使用由 Zend_Tool 构建的项目。
在这种情况下,该部分或您的 .zfproject.xml 没有使用 phpunit 所需的信息。
Netbeans 实际上并没有对 Zend_Tool 做任何事情,只是为了提供图形界面。
我希望我能快速解决这个问题,但我没有。我过去通过以下方式解决了这个问题:

  1. 确保 phpunit 已正确设置并在 Netbeans 中工作

现在你有两个选择:

  1. 使用Zend_Tool 重新制作您的项目目录,并让 .zfproject.xml 文件使用工作的 phpunit 生成。(这适用于新项目)

    李>
  2. 使用Zend_Tool 创建一个新项目,使用编辑器查看 .zfproject.xml 并将您的项目的 .zfproject.xml 更改为包括 phpunit 信息。此方法可能需要经过反复试验才能正确。

这里要完整的是我的 .zfproject.xml 文件之一的摘录:

<testsDirectory>
      <testPHPUnitConfigFile filesystemName="phpunit.xml"/>
      <testPHPUnitBootstrapFile filesystemName="bootstrap.php"/>
      <testApplicationDirectory>
        <testApplicationControllerDirectory>
          <testApplicationControllerFile forControllerName="Index"/>
        </testApplicationControllerDirectory>
      </testApplicationDirectory>
      <testLibraryDirectory/>
    </testsDirectory>

我还没有找到一种方法来重新生成 .zfproject.xml 文件以反映对环境的更改。

我希望其他人有更简单的解决方法...

【讨论】:

  • @Rockford,感谢您的回复。但是,xml 中的代码在我的 zfproject.xml 中得到了补充,因为我已经设置了项目属性(请参阅我的问题中的图 4)。我遵循了你的程序,但没有为我工作。但是现在,我设法只用一件事生成了一个 PHPUnit 测试控制器:删除zf.ini 中的php.include_path。多么愚蠢!
  • 我什至不知道 zf.ini 的存在,感谢您的回答。
【解决方案2】:

我找到了解决办法。

c:/user/you profile user/.zf.ini中,配置文件是这样的:

php.include_path = ".C:/wamp/bin/php/php5.3.8/pear/PHPUnit;C:/Program Files/NetBeans 7.1/php/zend;C:/wamp/apps/ZendFramework/library" basicloader.classes.0 = "NetBeansCommandsProvider"

我取了php.include_path,留下的文件如下:

basicloader.classes.0 = "NetBeansCommandsProvider"

嗯..这太疯狂了,我不明白,因为它对我很有效。

注意: 请注意,设置应该已经在 C:\wamp\bin\php\php5.3.8 和 C:\wamp\bin\apache\Apache2 的 php.ini 中设置 include_path .2.21\bin

谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多