„Codeception Unit Tesztelés segédlet” változatai közötti eltérés
1. sor: | 1. sor: | ||
− | |||
A Yii2 keretrendszer automatikusan feltelepíti a Codeception nevű teszt keretrendszert, mely PhpUnit-ot használ. | A Yii2 keretrendszer automatikusan feltelepíti a Codeception nevű teszt keretrendszert, mely PhpUnit-ot használ. | ||
A terminálba a beírt <code>'''vendor\bin\codecept'''</code> parancs segítségével megtekinthetjük a kiválasztható opciókat. | A terminálba a beírt <code>'''vendor\bin\codecept'''</code> parancs segítségével megtekinthetjük a kiválasztható opciókat. | ||
− | + | == Unit teszt osztály létrehozása == | |
Terminálba írható parancs segítségével: <code>'''vendor\bin\codecept g:test unit HolidaysTest'''</code><br> | Terminálba írható parancs segítségével: <code>'''vendor\bin\codecept g:test unit HolidaysTest'''</code><br> | ||
vagy pedig:<br> | vagy pedig:<br> | ||
14. sor: | 13. sor: | ||
== Gyakori hibák == | == Gyakori hibák == | ||
− | + | ''''' Configuration.php: _bootstrap.php cant't be loaded '''''<br> | |
[[Fájl:Unit teszt1.png|400px|bélyegkép|jobbra|bootstrap can't be loaded]] | [[Fájl:Unit teszt1.png|400px|bélyegkép|jobbra|bootstrap can't be loaded]] | ||
Ha a <code>'''vendor\bin\codecept'''</code> bármilyen parancsa beírása esetén az alábbi képen is látható hiba üzenet jelenik meg, akkor valószínűleg a tests mappa törölve lett, a codeception.yml viszont nem<br> | Ha a <code>'''vendor\bin\codecept'''</code> bármilyen parancsa beírása esetén az alábbi képen is látható hiba üzenet jelenik meg, akkor valószínűleg a tests mappa törölve lett, a codeception.yml viszont nem<br> | ||
21. sor: | 20. sor: | ||
# A terminálban a <code>'''php composer.phar require codeception/module-phpbrowser --dev'''</code> parancs beírása, a module-phpbrowser telepítése / frissítése | # A terminálban a <code>'''php composer.phar require codeception/module-phpbrowser --dev'''</code> parancs beírása, a module-phpbrowser telepítése / frissítése | ||
# A terminálban a <code>'''vendor\bin\codecept bootstrap'''</code> parancs futtatása | # A terminálban a <code>'''vendor\bin\codecept bootstrap'''</code> parancs futtatása | ||
− | Ezekután létrehozhatjuk a tesztjeinket. | + | Ezekután létrehozhatjuk a tesztjeinket.<br><br> |
− | + | ''''' Class not found '''''<br> | |
[[Fájl:Unit teszt6.png|400px|bélyegkép|jobbra|Class not found]] | [[Fájl:Unit teszt6.png|400px|bélyegkép|jobbra|Class not found]] | ||
A <code>'''vendor\bin\codecept run'''</code> futtatása után a következő hiba üzenet fogad:<br> | A <code>'''vendor\bin\codecept run'''</code> futtatása után a következő hiba üzenet fogad:<br> | ||
31. sor: | 30. sor: | ||
<code>'''require(__DIR__ . '\..\modules\apps\models\Apps.php');'''</code><br><br> | <code>'''require(__DIR__ . '\..\modules\apps\models\Apps.php');'''</code><br><br> | ||
− | + | ''''' Class 'Yii' not found '''''<br> | |
[[Fájl:Unit teszt7.png|400px|bélyegkép|jobbra|Class 'Yii' not found]] | [[Fájl:Unit teszt7.png|400px|bélyegkép|jobbra|Class 'Yii' not found]] | ||
Ha az alábbi hibaüzenet jelenik meg akkor, a codeception.yml fájl konfigurálása szükséges.<br> | Ha az alábbi hibaüzenet jelenik meg akkor, a codeception.yml fájl konfigurálása szükséges.<br> | ||
43. sor: | 42. sor: | ||
</pre> | </pre> | ||
− | + | ''''' Call to a member function getDb() on null '''''<br> | |
[[Fájl:Unit teszt8.png|400px|bélyegkép|jobbra|[Error] Call to a member function getDb() on null]] | [[Fájl:Unit teszt8.png|400px|bélyegkép|jobbra|[Error] Call to a member function getDb() on null]] | ||
A hiba esetén, a unit.suite.yml fájl konfigurálása szükséges.<br> | A hiba esetén, a unit.suite.yml fájl konfigurálása szükséges.<br> | ||
55. sor: | 54. sor: | ||
<br> | <br> | ||
− | + | ''''' Unknown database 'yii2_basic_tests' '''''<br> | |
[[Fájl:Unit teszt9.png|400px|bélyegkép|jobbra|[1049] Unknown database 'yii2_basic_tests']] | [[Fájl:Unit teszt9.png|400px|bélyegkép|jobbra|[1049] Unknown database 'yii2_basic_tests']] | ||
'''Megoldás:''' Ebben az esetben a config mappában a test_db.php-ban a dbname beállítása szükséges.<br> | '''Megoldás:''' Ebben az esetben a config mappában a test_db.php-ban a dbname beállítása szükséges.<br> | ||
'''Fontos: ne a fejlesztés adatbázisát használjuk, hozzunk létre külön tesztadatbázist''' | '''Fontos: ne a fejlesztés adatbázisát használjuk, hozzunk létre külön tesztadatbázist''' |
A lap 2021. augusztus 30., 15:11-kori változata
A Yii2 keretrendszer automatikusan feltelepíti a Codeception nevű teszt keretrendszert, mely PhpUnit-ot használ.
A terminálba a beírt vendor\bin\codecept
parancs segítségével megtekinthetjük a kiválasztható opciókat.
Unit teszt osztály létrehozása
Terminálba írható parancs segítségével: vendor\bin\codecept g:test unit HolidaysTest
vagy pedig:
1. Grafikus felületen tests mappában unit mappára jobb klikk > new > PHP Test > Codeception Unit Test
2. Ezekután bejön a Create New PHP Test ablaka: Itt megadhatjuk, hogy melyik megírt osztályt szeretnénk tesztelni, illetve az adott osztály tesztelni kívánt metódusait is legenerálhatjuk.
Gyakori hibák
Configuration.php: _bootstrap.php cant't be loaded
Ha a vendor\bin\codecept
bármilyen parancsa beírása esetén az alábbi képen is látható hiba üzenet jelenik meg, akkor valószínűleg a tests mappa törölve lett, a codeception.yml viszont nem
Megoldás:
- A codeception.yml fájl törlése
- A terminálban a
php composer.phar require codeception/module-phpbrowser --dev
parancs beírása, a module-phpbrowser telepítése / frissítése - A terminálban a
vendor\bin\codecept bootstrap
parancs futtatása
Ezekután létrehozhatjuk a tesztjeinket.
Class not found
A vendor\bin\codecept run
futtatása után a következő hiba üzenet fogad:
Megoldás:
A hiányzó osztály és az Apps.php fájl require paranccsal történő implementálása a _bootstrap.php fájlban, az alább is látható módon:
require(__DIR__ . '\..\modules\partners\models\Partners.php');
require(__DIR__ . '\..\modules\apps\models\Apps.php');
Class 'Yii' not found
Ha az alábbi hibaüzenet jelenik meg akkor, a codeception.yml fájl konfigurálása szükséges.
Megoldás: A codeception.yml fájlhoz az alábbi kód hozzáadása:
bootstrap: _bootstrap.php modules: config: Yii2: configFile: 'config/test.php'
Call to a member function getDb() on null
A hiba esetén, a unit.suite.yml fájl konfigurálása szükséges.
Megoldás: A unit.suite.yml fájlhoz az alábbi kód hozzáadása:
modules: enabled: - Yii2: part: [ orm, email, fixtures ]
Unknown database 'yii2_basic_tests'
Megoldás: Ebben az esetben a config mappában a test_db.php-ban a dbname beállítása szükséges.
Fontos: ne a fejlesztés adatbázisát használjuk, hozzunk létre külön tesztadatbázist