PHPUnit文件命名约定

PHPUnit文件命名约定,php,unit-testing,phpunit,Php,Unit Testing,Phpunit,我刚刚开始在一些现有代码上尝试phpunit。我们使用的命名约定是MyClass类应该在MyClass.class.php中。PHPUnit似乎要求文件名为MyClass.php 这有什么办法吗 我在尝试生成骨架测试类时注意到: phpunit --skeleton-test MyClass.class PHPUnit 3.3.4 by Sebastian Bergmann. Could not find class "MyClass.class" in "/home/jd/skeleton

我刚刚开始在一些现有代码上尝试phpunit。我们使用的命名约定是MyClass类应该在MyClass.class.php中。PHPUnit似乎要求文件名为MyClass.php

这有什么办法吗

我在尝试生成骨架测试类时注意到:

phpunit --skeleton-test MyClass.class

PHPUnit 3.3.4 by Sebastian Bergmann.

Could not find class "MyClass.class" in "/home/jd/skeleton/classes/MyClass.class.php".
Fatal error: Call to a member function getOutClassName() on a non-object in /usr/share/php/PHPUnit/TextUI/Command.php on line 470

这不是要求,只是假设。您可以编写自己的测试用例

Skeleton只是制作了一个模型,一种“简单的方法”,可以为所有类生成虚拟函数

而且

phpunit --skeleton-test MyClass  MyClass.class.php
也许你想做什么就做什么

   Usage: phpunit [switches] UnitTest [UnitTest.php]
       phpunit [switches] <directory>

--skeleton-class         Generate Unit class for UnitTest in UnitTest.php.
--skeleton-test          Generate UnitTest class for Unit in Unit.php.
用法:phpunit[switches]UnitTest[UnitTest.php] phpunit[开关] --骨架类在UnitTest.php中为UnitTest生成单元类。 --骨架测试为Unit.php中的单元生成UnitTest类。
因此,根据这种推理,如果你不告诉它类在哪个文件中,它会尝试猜测,如果你告诉它类在哪个文件中,它就不会猜测。

当为类生成骨架时,我遇到了一个类似的问题,因为类的骨架是命名空间的。我在命令行中使用phpunit3.5.6。phpUnit文档示例对我不起作用,我无法在网上找到答案,所以我想在这里分享一下。假设在目录/my/dir中有类Foo,并且它在一个文件Foo.php中声明,那么类文件的完整路径是/my/dir/Foo.php

还假设Foo声明如下:

<?php

namespace my\space;
class Foo
{
    ...
}
这让我的骨架产生了。由于phpUnit的文档中提到了名称空间,但只显示了一个反斜杠,所以关键是要避开反斜杠。希望这对别人有帮助

user[/my/dir]$ phpunit --skeleton-test my\\dir\\Foo Foo.php