Прежде чем начать тестирование, нужно предпринять некоторые шаги. Он работает для Ubuntu 18.04
установка php глобально
~$ sudo add-apt-repository -y ppa:ondrej/php \
&& sudo apt-get update \
&& sudo apt-get install -y php \
&& sudo apt-get install -y php-xml \
&& sudo apt-get install -y php-mbstring
для проверки успешности установки запуска ~$ php -v
установка composer глобально
~$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php'); " \
. "if (hash_file('sha384', 'composer-setup.php') === " \
. "e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') " \
. "{ echo 'Installer verified'; } " \
. "else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \
&& php composer-setup.php \
&& php -r "unlink('composer-setup.php');" \
&& sudo mv composer.phar /bin/composer
для проверки успешности установки выполните ~$ composer -V
(соответствующий га sh всегда включен composer официальная документация )
install phpunit - инфраструктура модульного тестирования для php
project_folder$ composer require --dev phpunit/phpunit
эта команда создаст файлы composer.json
и composer.lock
, а также vendor
каталог root вашего проекта.
Следуя некоторым соглашениям, я создал два файла - Math.php
и MathTest.php
и добавил раздел автозагрузки в composer.json
Math. php
<?php
namespace Source;
class Math
{
public function square($number)
{
return $number * $number;
}
}
MathTest. php
<?php
use PHPUnit\Framework\TestCase;
use Source\Math;
class MathTest extends TestCase
{
public $math;
public function setUp(): void
{
$this->math = new Math();
}
public function testSquareEquals()
{
$this->assertEquals(4, $this->math->square(2));
$this->assertEquals(16, $this->math->square(4));
}
public function testSquareNotEquals()
{
$this->assertNotEquals(3, $this->math->square(2));
$this->assertNotEquals(9, $this->math->square(4));
}
}
composer. json
{
"autoload": {
"psr-4": {
"Source\\": "src"
}
},
"require-dev": {
"phpunit/phpunit": "^9.0"
}
}
результирующая структура проекта
project_folder
├─── src
│ └── Math.php
├─── tests
│ └── MathTest.php
├── vendor
├── composer.json
└── composer.lock
для создания файлов автозагрузки:
project_folder$ composer dump-autoload
Это все. Теперь вы можете начать тестирование, выполнив команду
project_folder$ vendor/bin/phpunit tests
PHPUnit 9.0.1 by Sebastian Bergmann and contributors.
.. 2 / 2 (100%)
Time: 28 ms, Memory: 4.00 MB
OK (2 tests, 4 assertions)
, где tests
- каталог с вашими тестами.
Больше примеров в официальной документации phpunit