Sziasztok,
Szakdolgozatomban szeretném használni tesztelés során a drupalnak a Test modulját. Sajnos eddig még sehogy nem jöttem rá, hogyan lehetne működésre bírni. Bekapcsoltam a test modult és a simpletest example modult is. De olyat említ ez az https://drupal.org/simpletest-tutorial-drupal7 oldal, hogy node/add/simpletest-example tudnom kellene ilyet csinálni, meg kellene lenni Configuration > Development > Testing page- nek ahol ezt le lehetne futtatni de ilyen nincs sajnos. A legnagyobb probléma az, hogy ezeknek az okát nem tudom.
Próbálkoztam mással is, hogy a node.test-be beleírom a saját tesztjeim.
Megtaláltam a node.test fájlt és oda írtam egy egyedi kódot ezt alul láthatjátok, de ha ez megvan akkor hogyan tudnám lefuttatni ezeket a teszteket, mert magától nem fut le, cache ürítés után sem.
A kódom(a kiemelt rész direkt hibás rossz tábla van megadva):
class NodeRuleCreateTest extends NodeWebTestCase { 'name' => 'Node expression create', 'description' => 'Node expression create', 'group' => 'Node' ); } function setUp() { } /** * Create a "Basic page" node and verify its consistency in the database. */ // <-Ezt a sort én raktam bele -pp- function testRuleCreateChange() { $this->drupalLogin($web_user); <strong><h3>$epid = db_insert('nar_rules_expressio')</h3></strong> 'nar_rule_expr_nid' => '1', 'nar_rule_expr_value' => '(A1A) AND (A2A)', 'nar_rule_type' => 'R', 'nar_rule_expr_active' => '1', )) ->execute(); $this->assertTrue($entity_rule, 'Jött vissza adat.'); $this->assertTrue(isset($entity_rule[$epid]->nar_rule_expr_value), 'Van nar_rule_expr_value tulajdonsága.'); $this->assertTrue($entity_rule[$epid]->nar_rule_expr_value == '(A1A) AND (A2A)', 'Az van benne amit beleraktunak.'); } }
simpletest engedélyezve van?
Hibalehetőség 1.
simpletest (testing) modul be van kapcsolva?
Mert akkor kell lennie Configuration > Development > Testing page-nek.
Hibalehetőség 2.
Ha magyar localizációval rendelkezel, akkor a Próba menüpontot kell keresned a Fejlesztés menüben. :)
Ha ez megvan, akkor tudod futtatni a már létező teszteket. Ezután jöhet az, hogy írsz egyet.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Sikerült aktiválni a modult utána adódó kérdések
Szia,
Sajnos valami nagyon elromlott ezért újra raktam a drupalt és így aktiválódott már egyből. Probálok megírni hasonló test eseteket tiédhez hasonlóan de sajnos nem nagyon akar lefutni valamikor időtulépés miatt hal el, valamikor pedig azért, mert a olyan táblába akar menteni ami nincs is és simple_test a vége.
Az example modul segítségével szerinted a felsőhöz hasonló testet le lehetne futtatni?
Üdv,
Laci
Szia!
Szia!
A simpletest arra való, hogy ha van egy modulod, akkor annak a működését le tud tesztelni. Alapvetően integrációs tesztekre lehet használni, bár van Unit test lehetőség is, de az szörnyen lassú(tdd-re pl. használhatatlan), lévén a test futtatásához bootstrap-el egy Drupalt. (a web teszthez minimumkettőt és az elsőn kívül az összeset újrainstallálja... egy jó könyvet készíts ki amit olvasgatni fogsz közben. :))
Tipikus megoldás, hogy a modul könyvtárában van egy, vagy több .test kiterjesztésű állomány, amiben a tesztek vannak, és ezek mindegyike fel van véve az .info fájl files[] tömbjébe. Ha nincs, nem fogod tudni futtatni.
Ekkor már tudsz olyan tesztet csinálni, hogy:
Ez semmit nem csinál, és még teszteset sincsen benne, ellenben megjelenik a futtató felületen és le tudod futtatni. (aminek hatására kiírja, hogy nincs teszt amit futtathat.)
Ebbe az osztályba, ha bedobod a következő függvényt:
Akkor már jó hosszan fog futni a teszted, mert nem csak egy Drupal-t bootstrapel, mint az előbb, hanem még fel is telepít egyet a nem látható, testing profillal. Ezt a Drupal-t ugyan abba az adatbázisba installálja, mint ahol a másik van, csak táblaprefixel (legalább is mysql-nél, sqlite-nál picit máshogy működik, vagyis nem igazán működik)
Ha egy teszt elhal, akkor telis-tele lesz az adatbázisod ilyen táblákkal, ezért néha érdemes rátolni "Clean environment"-et.
Ha ez megvan, akkor jöhet az, hogy a saját modulod függvényeit hívogatod. Ehhez már kell egy setup függvény is:
A Te példádban a node_test modul töltené be, bár kétlem, hogy lenne ilyen modul, szóval ez biztos nem fut ez a teszt.
Itt minden olyan modult be kell töltened, ami kell a teszthez. Minél több modult töltesz be annál lassabb lesz a teszted. :)
További információkért lásd az eredeti doksit: http://drupal.org/simpletest
Palócz István
https://palocz.hu | https://tanarurkerem.hu