2012-11-23 7 views
6

私はDjangoアプリケーションをテストするためにいくつかのcasperjsテストを書いています。 Djangoアプリケーションが起動された場合(例えばポート8000​​)、casperjsは別のプロセスとして実行され、実行中のDjangoアプリケーションにアクセスできます。Jenkinsからcasperjs javascriptテストを実行するにはどうすればよいですか?

私の他のテストは、Django(web)テストフレームワークで書かれています。これは、テストデータベースをフィクスチャで設定し、./manage.py testで実行します。 Django webtestでは、別のDjango Webサーバを起動する必要はありません(リクエストとURLルーティングはプロキシ/シミュレートされます)。

Django Webtestからcasperjsテストを実行する方法はありますか?別のWebサーバーを起動していなくても、もう1つのテストデータベースが必要ですか?

ghost.pyは存在していますが、まだ試していません。

答えて

3

私は解決策を見つけることができました。 Djangoの1.4にアップグレードした後、私はサブプロセスにLiveServerTestCaseとフォーク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 
1

あなたはdjango-casperを見てみる必要があります。私は数日前にそれを使用し始めた、そしてそれはちょうど素晴らしいです!

関連する問題