我想建立一個新的PHP項目。由於我是phpunit和composer的新手,所以我對這個項目很感興趣。設置與作曲家和phpunit的PHP項目
我的文件夾結構如下所示:
- TestProject
-- src
--- Controller
----- Foo.php
--- index.php
-- tests
--- Controller
----- FooTest.php
-- vendor
-- composer.json
-- phpunit.xml
我作曲文件:
"require": {
"php": ">=5.4.0"
},
"require-dev": {
"phpunit/phpunit": "4.7.*"
},
"autoload": {
"psr-4": {
"TestProject\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"TestProject\\Tests\\": "tests/"
}
}
我phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true" bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="TestProject Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>
</phpunit>
Foo.php
namespace TestProject\Controller;
class Foo
{
private $amount;
public function __construct($amount)
{
$this->amount = $amount;
}
public function getAmount()
{
return $this->amount;
}
}
FooTest.php
namespace TestProject\Tests\Controller;
class FooTest extends \PHPUnit_Framework_TestCase
{
public function testCanBeNegated()
{
// Arrange
$a = new Foo(1);
// Act
$b = $a->getAmount();
// Assert
$this->assertEquals(1, $b->getAmount());
}
}
但現在我不知道我失蹤得到./vendor/bin/phpunit .
運行。目前,它給我一個錯誤:
PHP Fatal error: Uncaught PHPUnit_Framework_Exception: Class "PHPUnit_Extensions_RepeatedTest" does not extend PHPUnit_Framework_TestCase.
你在項目中添加作曲家'autoload.php'?如果不是,則需要__DIR__。 '/vendor/autoload.php';' –
我在'phpunit.xml'中添加了'bootstrap =「./ tests/start.php」'。它包含'require_once __DIR__。 '/../供應商/ autoload.php';'。這應該夠了? – Pascal
作曲家的'autoload.php'通常載入您項目的根目錄(而不是'phpunit.xml')。看看Laravel,Drupal和其他流行的PHP項目。 –