【问题标题】:PHPStorm 4.0 - unable to run PHPUnit on a single class/methodPHPStorm 4.0 - 无法在单个类/方法上运行 PHPUnit
【发布时间】:2012-08-24 17:19:32
【问题描述】:

我在 PHPStorm 4.0.3 中的 PHP 项目(使用 Kohana 3.2 框架)有问题。在使用 Class 或 Method 范围设置 PHPUnit 时,如果测试类扩展自 Unittest_Database_Testcase,则无法从指定的单元测试文件中检测到该类。

例如,我无法测试下面的类,因为选择测试类对话框显示“Nothing to show”。

/**
 * Class cannot be chosen.
 */
class A_Test extends Unittest_Database_Testcase {
    public function test_something() { /* ... hence this method test cannot be chosen */ }
}

但是,如果文件从 Unittest_Testcase 扩展,则 PHPStorm 可以检测到该类(以及随后的方法)并且我能够运行测试。

class A_Test extends Unittest_Testcase {
    public function test_something() {}
}

我怀疑原因是 PHPStorm 还没有支持单独运行数据库测试。有没有办法解决这个问题?

注意:我运行整个测试套件没有问题,但是我担心测试的数量正在增长。运行单个数据库测试大约需要半秒钟(由于涉及到查询),因此每次我需要验证新编写的测试是否正常工作时,运行整个测试套件将非常耗时。

【问题讨论】:

  • 当你Ctrl+点击Unittest_Database_Testcase时,它会带你去类定义吗?如果是这样——你能走得更远(到这个类的父类等等)吗?我过去曾看到过类似情况的消息,建议确保 PhpStorm 了解 PHPUnit 类(例如,作为外部库添加到项目中的 PHPUnit 文件)。
  • 它现在可以工作了——我没有将 PHPUnit 作为外部库包含在内。但是,它现在因不同的原因而失败:我有一个名为“Abstract_Class”的抽象类,它位于 Unittest_Database_Testcase 和我的单元测试文件之间(即它继承了抽象类的所有测试)。每次我运行一个测试时,它只会显示“找不到类'Abstract_Class'”。它不知何故无法识别...
  • 谁说的——PHPUnit 还是 PhpStorm?请记住,PHPUnit 是执行测试的那个,PhpStorm 只做集成的事情,因此“Abstract_Class”应该在执行期间可用于 PHP。
  • 啊,现在可以了。我必须在引导文件中手动包含Abstract_Class。可能是因为当 PHPUnit 指向测试文件时没有自动包含它。谢谢!

标签: php phpunit phpstorm


【解决方案1】:

对于任何错过它的人,OP 找到了答案并将其发布在 cmets...

我必须在引导文件中手动包含 Abstract_Class。可能是因为 PHPUnit 指向测试文件时没有自动包含。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2013-09-01
    • 1970-01-01
    相关资源
    最近更新 更多