PHPUnit: Instalimi

Instalimi i versionit të fundit të PHP

Rekomandohet që të përdoret versioni i fundit i PHP, dhe në kuadër të PHP të jenë të aktivizuara ekstensionet dom dhe json. Për gjenerimin e raporteve nevojiten edhe ekstensionet Xdebug, tokenizer dhe xmlwriter. Për versionin e fundit (9.0 në kohën e shkrimit të këtij postimi) nevojitet minimalisht PHP 7.3.

Nëse doni ta instaloni versionin 9 të PHPUnit, ndërsa PHP është më i vjetër se 7.3, atëherë së pari e instalojmë versionin më të fundit të PHP dhe e vendosim shtegun e php.exe të versionit të fundit në PATH, në mënyrë që kur punojmë në terminal (CLI - command line interpreter), të shfrytëzohet versioni i ri i PHP, që në sistemin tim gjendet në: C:\laragon\bin\php\php-7.4.3-Win32-vc15-x64

Ky shteg do të jetë ndryshe nëse keni të instaluar WAMP apo XAMPP, mjafton atje të gjeni në cilin nënfolder gjendet php.exe dhe atë shteg ta vendosni në PATH.

E testojmë versionin e PHP në terminal me php -v ose php --version:

Versionin më të fundit të PHP e gjeni në:

https://windows.php.net/download/

Në rastin e Apache serverit, zgjedhim versionin thread-safe, që aktualisht është: VC15 x64 Thread Safe (2020-Feb-18 22:57:21)

https://windows.php.net/downloads/releases/php-7.4.3-Win32-vc15-x64.zip

Fajlli .zip ekstraktohet dhe vendoset në folderin përkatës, që në sistemin tim me Laragon të instaluar gjendet në:

C:\laragon\bin\php

Aty e vendosim përmbajtjen e ekstraktuar të zip fajllit si folder:

Pra, tash me PHP 7.4.3, do të mund ta instalojmë dhe përdorim PHPUnit 9.

Instalimi i versionit të fundit të PHPUnit

PHPUnit është PHP aplikacion në formatin .phar (PHP archives).

Për të pasur qasje globale ndaj PHPUnit, nevojitet që ta shkarkojmë dhe ta vendosim në një folder i cili duhet të jetë i shënuar në PATH të sistemit.

E krijojmë një folder me emrin bin (apo emër tjetër, me rëndësi është që të jetë i cekur në PATH) në diskun C, ku e vendosim fajllin e shkarkuar nga https://phar.phpunit.de/phpunit-9.0.phar.

Mund ta startojmë me:

php phpunit-9.0.1.phar

Për ta thirrë këtë komandë në një formë më të shkurtër, në folderin e njëjtë e krijojmë një fajll me emrin phpunit.cmd, me këtë përmbajtje:

@php "%~dp0phpunit-9.0.1.phar" %* 

Me këtë na mundësohet që PHPUnit ta startojmë me: phpunit dhe parametrat e nevojshëm, p.sh. --version:

phpunit --version

Instalimi me Composer

Brenda folderit të projektit, e ekzekutojmë komandën:

composer require --dev phpunit/phpunit ^9.0

Pakot që instalohen në këtë rast janë:

Package operations: 29 installs, 0 updates, 0 removals
  - Installing sebastian/version (3.0.0): Downloading (100%)
  - Installing sebastian/type (2.0.0): Downloading (100%)
  - Installing sebastian/resource-operations (3.0.0): Downloading (100%)
  - Installing sebastian/recursion-context (4.0.0): Downloading (100%)
  - Installing sebastian/object-reflector (2.0.0): Downloading (100%)
  - Installing sebastian/object-enumerator (4.0.0): Downloading (100%)
  - Installing sebastian/global-state (4.0.0): Downloading (100%)
  - Installing sebastian/exporter (4.0.0): Downloading (100%)
  - Installing sebastian/environment (5.0.1): Downloading (100%)
  - Installing sebastian/diff (4.0.0): Downloading (100%)
  - Installing sebastian/comparator (4.0.0): Downloading (100%)
  - Installing phpunit/php-timer (3.0.0): Downloading (100%)
  - Installing phpunit/php-text-template (2.0.0): Downloading (100%)
  - Installing phpunit/php-invoker (3.0.0): Downloading (100%)
  - Installing phpunit/php-file-iterator (3.0.0): Downloading (100%)
  - Installing phpunit/php-token-stream (4.0.0): Downloading (100%)
  - Installing sebastian/code-unit-reverse-lookup (2.0.0): Downloading (100%)
  - Installing theseer/tokenizer (1.1.3): Loading from cache
  - Installing phpunit/php-code-coverage (8.0.1): Downloading (100%)
  - Installing doctrine/instantiator (1.3.0): Loading from cache
  - Installing phpdocumentor/reflection-common (2.0.0): Loading from cache
  - Installing phpdocumentor/type-resolver (1.1.0): Loading from cache
  - Installing webmozart/assert (1.7.0): Loading from cache
  - Installing phpdocumentor/reflection-docblock (5.1.0): Loading from cache
  - Installing phpspec/prophecy (v1.10.3): Loading from cache
  - Installing phar-io/version (2.0.1): Loading from cache
  - Installing phar-io/manifest (1.0.3): Loading from cache
  - Installing myclabs/deep-copy (1.9.5): Loading from cache
  - Installing phpunit/phpunit (9.0.0): Downloading (100%)

Me këtë, PHPUnit do të shtohet në composer.json të projektit, në kuadër të require-dev:

    "require-dev": {
        "facade/ignition": "^1.4",
        "fzaninotto/faker": "^1.4",
        "laravel/ui": "^1.1",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^3.0",
        "phpunit/phpunit": "^9.0"
    },

Nëse e keni shënuar direkt në composer.json (ose keni bërë copy/paste), nevojitet të ekzekutoni edhe:

composer update

Në këtë formë të instalimit, PHPUnit është instaluar në kuadër të projektit dhe jo si instalim global dhe kjo është forma e rekomanduar.

Vërejtje:

PHPUnit përdoret vetëm gjatë zhvillimit të aplikacionit, prandaj nuk është i nevojshëm bartja e tij në Web server, aq më tepër që paraqet problem në aspektin e sigurisë për aplikacionit tuaj.