2012-11-23 13 views
6

Ho scritto alcuni test di casperjs per testare la mia applicazione Django. Se l'applicazione Django viene avviata (ad esempio sulla porta 8000), è possibile eseguire casperjs come processo separato e accedere alla mia app Django in esecuzione.Come posso eseguire i test di javascript di casperjs da Jenkins?

I miei altri test sono scritti con il framework di test (web) di Django che imposta il database di test con le fixture e vengono eseguiti con ./manage.py test. Con Django webtest, non è necessario avviare un server web Django separato (fare richieste e il routing dell'URL è proxy/simulato).

C'è un modo per eseguire i test di casperjs dall'interno di Django webtest? Senza avviare un server Web diverso e disporre di un altro database di test?

Ho visto che ghost.py esiste, ma non l'ho ancora provato.

risposta

3

Sono riuscito a trovare una soluzione. Dopo l'aggiornamento a Django 1.4 posso usare LiveServerTestCase e casperjs forcella in un sottoprocesso:

from django.test.testcases import LiveServerTestCase 
import os, subprocess 
from subprocess import Popen, PIPE, STDOUT 

class CasperTest(LiveServerTestCase): 
    fixtures = ['test_initial_data', ] 

    def test_my_testcase(self): 
     p = Popen(['casperjs %s/caspertest.js' % os.path.dirname(__file__)], shell=True, stdout=PIPE, stderr=STDOUT, close_fds=True) 
     output = p.stdout.read() 
     print output 
1

si dovrebbe dare un'occhiata a django-casper. Ho iniziato a usarlo pochi giorni fa ed è semplicemente fantastico!

Problemi correlati