2015-06-19 184 views
2

我有一個PHPUnit的「不執行任何測試」 ..的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! 

有誰可以告訴我什麼,我做錯了什麼?

在此先感謝!

回答

5

您需要更正phpunit.xml中的路徑。

它試圖找到文件suites/install/InstallDbTest.php。由於該文件不存在,因此不會運行測試並收到消息。

更改配置爲執行以下操作:在phpunit.xml

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

文件路徑都是相對於xml文件的位置。

+0

謝謝你Schleis! – nsvir

0

也許在InstallDbTest.php文件你缺少:

<?php 
... 
0

對於那些使用不同引導文件比作曲的自動加載的文件誰,請確保你沒有use你的一個測試用例類。

事實上,PHPUnit的(在我的情況下,6.2版)添加到運行TestSuite爲其沒有類裝載尚未(看看它是如何做in the code)所有PHP文件。從TestSuite::addTestFile($filename)方法:

$classes = get_declared_classes(); 
$filename = Fileloader::checkAndLoad($filename); 
$newClasses = \array_diff(\get_declared_classes(), $classes); 

所以,如果你的類已經屬於get_declared_classes它會被忽略。

總結:不要use之前你的測試類;)