Как мне запустить тесты javascript casperjs от Jenkins?
Я написал несколько тестов casperjs для тестирования моего приложения Django. Если приложение Django запущено (например, на порту 8000), casperjs можно запустить как отдельный процесс и получить доступ к моему запущенному приложению Django.
Мои другие тесты написаны с помощью (веб) фреймворка Django, который устанавливает тестовую базу данных с приборами и запускается с ./manage.py test
, С веб-тестом Django вам не нужно запускать отдельный веб-сервер Django (выполнение запросов и маршрутизация URL-адресов проксируются / имитируются).
Есть ли способ запустить тесты casperjs из Django? Не запуская другой веб-сервер и не имея еще одну тестовую базу данных?
Я видел, что ghost.py существует, но еще не пробовал.
2 ответа
Мне удалось найти решение. После обновления до Django 1.4 я могу использовать LiveServerTestCase и fork casperjs в подпроцессе:
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
Вам стоит взглянуть на Джанго-Каспера. Я начал использовать его несколько дней назад, и это просто потрясающе!