如何在PHPUnit中执行所有测试?

时间:2015-01-21 17:24:52

标签: php testing selenium phpunit selenium-rc

我正在尝试从我的测试套件中运行所有测试,但是当我运行命令phpunit时,PHPUnit没有找到测试。我在phpunit.xml中配置了测试套件。

phpunit.xml

<?xml version="1.0" encoding="UTF-8" ?>
<phpunit backupGlobals="true"
         backupStaticAttributes="false"
         bootstrap="./bootstrap.php"
         cacheTokens="false"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         forceCoversAnnotation="false"
         mapTestClassNameToCoveredClassName="false"
         processIsolation="false"
         stopOnError="false"
         stopOnFailure="false"
         stopOnIncomplete="false"
         stopOnSkipped="false"
         strict="false"
         verbose="true">
    <testsuites>
        <testsuite name="All Tests">
            <directory suffix="*.php">.</directory>
        </testsuite>
    </testsuites>
</phpunit>

bootstrap.php中

<?php

error_reporting(E_ALL | E_STRICT);
date_default_timezone_set('America/Sao_Paulo');
require_once(dirname(__FILE__) . '/WebTestCase.php');

WebTestCase.php

<?php

define('TEST_BASE_URL', 'http://localhost:8080');

class WebTestCase extends PHPUnit_Extensions_SeleniumTestCase
{

    protected function setUp() {
        $this->setBrowser('*firefox');
        $this->setBrowserUrl(TEST_BASE_URL);
        $this->setHost('localhost');
        $this->setTimeOut(30);
    }
}

TestPage.php

class TestPage extends WebTestCase
{

    public function testTitle()
    {
        $this->open("/");
        $title = $this->getTitle();
        $this->assertEquals('Home', $title);
    }
}

如果我运行phpunit传递文件测试,如phpunit TestPage.php,则可以。

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以阅读documentation

  

注意如果将PHPUnit命令行测试运行器指向目录   它会查找* Test.php文件。

优良作法是让您的测试类具有此格式。但是,如果这不适合您,您可以更改此行为,创建phpunit.xml文件并正确设置:

<?xml version="1.0" encoding="utf-8" ?>
<phpunit>
<testsuite name='Name your suite'>
    <directory suffix=".php">/path/to/files</directory>
</testsuite>
</phpunit>

请注意,我删除了*。从理论上讲,phpunit应该遍历目录并在文件末尾执行.php的所有文件。

我认为如果删除*并设置正确的路径,它应该可以正常工作。