Как мне запустить тесты 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

Вам стоит взглянуть на Джанго-Каспера. Я начал использовать его несколько дней назад, и это просто потрясающе!

Другие вопросы по тегам