2012-11-23 30 views
6

Tôi đã viết một số kiểm tra casperjs để kiểm tra ứng dụng Django của tôi. Nếu ứng dụng Django được bắt đầu (trên cổng 8000 chẳng hạn), casperj có thể được chạy như một quá trình riêng biệt và truy cập ứng dụng Django đang chạy của tôi.Làm cách nào để chạy thử nghiệm casperjs javascript từ Jenkins?

Các thử nghiệm khác của tôi được viết bằng khung kiểm tra (web) của Django, thiết lập cơ sở dữ liệu thử nghiệm có đồ đạc và được chạy với ./manage.py test. Với webtest Django, bạn không cần phải bắt đầu một máy chủ web Django riêng biệt (yêu cầu và định tuyến url được proxy/mô phỏng).

Có cách nào để rung kiểm tra casperjs từ trong webtest Django không? Không có máy chủ web khác và có cơ sở dữ liệu thử nghiệm khác?

Tôi đã xem ghost.py tồn tại, nhưng chưa thử.

Trả lời

3

Tôi đã tìm được giải pháp. Sau khi nâng cấp lên Django 1,4 Tôi có thể sử dụng LiveServerTestCase và casperjs ngã ba trong một tiến trình con:

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

Bạn nên có một cái nhìn tại django-casper. Tôi bắt đầu sử dụng nó một vài ngày trước và nó chỉ là tuyệt vời!

Các vấn đề liên quan