phpunit未执行任何测试

phpunit未执行任何测试,php,phpunit,Php,Phpunit,我对phpunit有一个“未执行测试” 这条线有效 $ phpunit install/InstallDbTest.php ... <result expected> ... $ cat suites/installtests.xml <phpunit> <testsuites> <testsuite name="database"> <file>install/InstallDb

我对phpunit有一个“未执行测试”

这条线有效

$ phpunit install/InstallDbTest.php
...
<result expected>
...

$ cat suites/installtests.xml   
<phpunit>
    <testsuites>
        <testsuite name="database">
            <file>install/InstallDbTest.php</file>
        </testsuite>
    </testsuites>
</phpunit>

$ phpunit -c suites/installtests.xml 
PHPUnit 4.7.4 by Sebastian Bergmann and contributors.



Time: 130 ms, Memory: 11.25Mb

No tests executed!
$phpunit安装/InstallDbTest.php
...
...
$cat suites/installtests.xml
install/InstallDbTest.php
$phpunit-c suites/installtests.xml
PHPUnit 4.7.4由塞巴斯蒂安·伯格曼和贡献者撰写。
时间:130毫秒,内存:11.25Mb
没有执行任何测试!
有人能告诉我我做错了什么吗


提前谢谢

您需要更正phpunit.xml中的路径

它正在尝试查找文件
suites/install/InstallDbTest.php
。由于该文件不存在,因此不会运行任何测试,您会收到消息

将配置更改为以下内容:

<phpunit>
    <testsuites>
        <testsuite name="database">
            <file>../install/InstallDbTest.php</file>
        </testsuite>
    </testsuites>
</phpunit>

../install/InstallDbTest.php
phpunit.xml中的文件路径都与xml文件的位置有关。

可能在InstallDbTest.php文件中缺少:

<?php
...

对于那些使用与Composer的自动加载文件不同的引导文件的人,请确保不要使用任何测试用例类

事实上,PHPUnit(在我的例子中是6.2版)向运行的
TestSuite
中添加了所有尚未加载类的PHP文件(请参见如何完成)。从
TestSuite::addTestFile($filename)
方法:

$classes = get_declared_classes();
$filename   = Fileloader::checkAndLoad($filename);
$newClasses = \array_diff(\get_declared_classes(), $classes);
因此,如果您的类已经属于
get\u declared\u类
,它将被忽略

总结一下:不要在之前使用你的测试类;)