【发布时间】: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 指向测试文件时没有自动包含它。谢谢!