Как мне запустить все мои тесты PHPUnit? - PullRequest
39 голосов
/ 12 сентября 2009

У меня есть скрипт 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());
    }
}  
?>

Ответы [ 5 ]

56 голосов
/ 15 октября 2010

Имя файла теста php должно заканчиваться Test.php

phpunit mydir запустит все сценарии с именем xxxxTest.php в каталоге mydir

(похоже, это не описано в документации phpunit)

34 голосов
/ 12 сентября 2009

Я создал следующее 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>
9 голосов
/ 14 сентября 2009

Я думаю, для того, чтобыPHPUnit решил автоматически запустить его, он должен следовать соглашению об именах файлов :thingTest.php.

2 голосов
/ 12 сентября 2009

Вы думаете, они бы это задокументировали. Я только что просмотрел руководство, и они говорят, что вы можете передать каталог, но не совсем, как это сделать.

Возможно, имя вашего класса должно совпадать с базовым именем (все, кроме ".php") имени файла ваших тестовых скриптов?

0 голосов
/ 23 апреля 2010
<?php
//Files required for phpunit test
require_once 'PHPUnit/Framework.php';
//Knowing the drupal environment
require_once './includes/bootstrap.inc';     //initialize the Drupal framework
//Loading the drupal bootstrap
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
//Helper file
include_once 'helper.inc';
//Including inc file of addresses module
include_once(module_load_include('inc','addresses_user','addresses_user'));

class addresses_test extends PHPUnit_Framework_TestCase {

protected $uid;

protected function setUp()
{
    $this->uid = 1;
}
...