當前位置: 首頁>>技術教程>>正文


如何運行所有PHPUnit測試?

, , , ,

問題描述

我有一個名為Script.php的腳本,並在Tests /Script.php中對其進行了測試,但是當我運行phpunit Tests時,它不會在我的測試文件中執行任何測試。如何使用phpunit運行所有測試?

PHPUnit 3.3.17,PHP 5.2.6-3ubuntu4.2,最新的Ubuntu

輸出:

$ phpunit Tests
PHPUnit 3.3.17 by Sebastian Bergmann.
Time: 0 seconds
OK (0 tests, 0 assertions)

這是我的腳本和測試文件:

Script.php

<?php  
function returnsTrue() {  
    return TRUE;  
}  
?>

測試/Script.php

<?php  
require_once 'PHPUnit/Framework.php';  
require_once 'Script.php'  

class TestingOne extends PHPUnit_Framework_TestCase  
{

    public function testTrue()
    {
        $this->assertEquals(TRUE, returnsTrue());
    }

    public function testFalse()
    {
        $this->assertEquals(FALSE, returnsTrue());
    }
}

class TestingTwo extends PHPUnit_Framework_TestCase  
{

    public function testTrue()  
    {  
        $this->assertEquals(TRUE, returnsTrue());  
    }

    public function testFalse()
    {
        $this->assertEquals(FALSE, returnsTrue());
    }
}  
?>

最佳答案

php測試的文件名必須以Test.php結尾

phpunit mydir將在目錄mydir中運行所有名為xxxxTest.php的腳本

(看起來好像phpunit文檔中沒有描述)

次佳答案

我創建了以下phpunit.xml,現在至少可以在根目錄中執行phpunit –configuration phpunit.xml來運行Tests /中的測試。

<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         syntaxCheck="false">
  <testsuites>
    <testsuite name="Tests">
      <directory suffix=".php">Tests</directory>
    </testsuite>
  </testsuites>
</phpunit>

第三種答案

我認為forPHPUnit決定自動運行它必須遵循文件名約定:somethingTest.php。

第四種答案

您認為他們會對此進行記錄。我隻是翻閱了手冊,他們說您可以傳遞目錄,但實際上卻不行。

也許您的類名必須與您的測試腳本文件名的基本名(除”.php”之外的其他所有內容)匹配?

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/10256.html,未經允許,請勿轉載。