Ciao a tutti, visto che tutti raccontano quello che hanno fatto, anch'io vi narro la mia allegra esperienza di 3 giornate con Sylvain Viollon su funittest.
Funittest è un framework per realizzare test funzionali. La home del progetto è: http://www.openplans.org/projects/funittest/project-home ed è portato avanti da Maik Röder e dallo stesso Sylvain. Personalmento lo trovo molto efficace come alternativa "programmatica" all'utilizzo di SeleniumIDE. Mentre selenium prevede per ogni test la ripetizione di tutta una serie di passi, funittest ti permette di strutturare logicamente il test. Il framework è organizzato concettualmente in varie parti: - il test (suddiviso in step riraggruppabili in vari modi) - gli scenari (che possono essere utilizzati per comporre i passi nei test, es. changeLabelContent) - il livello logico (es. clickOnLabel, editLabel, saveLabel) - il livello fisico (es. interpreter.clickAt('//span[text()="label"]'), ecc. ) - gli stati (fondamentalmente è dove si fanno le assert) - i contenuti (vedi sotto) la cosa interessante è che si basa anch'esso su selenium, ma, potendo creare strati logici astratti (a più livelli: test, scenari, logiche) ben separati da quello fisico, è possibile: - creare una sorta di "libreria" di possibili test/scenari/logiche - ricomporre e riusare quanto già "testato" in precedenza - lanciare test mirati su contesti specifici Altro punto molto arguto è la presenza di un'area di contenuti. Sempre confrontando 'Selenium' non abbiamo più la necessità di ripetere più e più volte la stessa stringa in più punti del test, ma addirittura utilizzare, udite udite, variabili :) per farla breve, è possibile creare dizionari di contenuti, registrarli nel sistema e riusarli in seguito. Puoi fare cose del tipo: for c in contents.keys() self._c = contents.get(c) self.expect_ok('1','2') ovvero: per ogni contenuto possibili, ottienilo e fai girare il test (composto di due passi) su ognuno di essi. Concludo segnalando: http://www.openplans.org/projects/funittest/making-an-egg-with-your-own-tests (fa sempre parte della documentazione) Si tratta della possibilità di creare un funittest direttamente via paster (va aggiornato ovviamente ZopeSkel: http://svn.plone.org/svn/collective/ZopeSkel/branches/funittest-templates/) all'interno del quale scrivere i propri test riusando le "librerie" scritte per Plone ( o in generale da altri) C'è ovviamente una certa curva iniziale di apprendimento: non è tutto così semplice da capire al volo. Sto vedendo però che Sylvain scrive documentazione proprio in questi giorni: i funittest template li ha iniziati mercoledi fissati sabato sera e ora sono disponibili con tanto di documentazione. Personalmente ho riscontrato che, una volta entrati nel meccanismo, e molti di voi saranno più bravi di me, è tutto molto naturale e si procede felici. Saluti a tutti Max
_______________________________________________ Plone-IT mailing list Plone-IT@lists.plone.org http://lists.plone.org/mailman/listinfo/plone-it http://www.nabble.com/Plone---Italy-f21728.html