6

Django アプリケーションをテストするためにいくつかの casperjs テストを作成しました。Django アプリケーションが (たとえば、ポート 8000 で) 開始されている場合、casperjs を別のプロセスとして実行し、実行中の Django アプリにアクセスできます。

私の他のテストは、フィクスチャを使用してテスト データベースをセットアップする Django の (Web) テスト フレームワークで作成され、./manage.py test. Django Webtest を使用すると、別個の Django Web サーバーを開始する必要はありません (要求を実行し、URL ルーティングはプロキシ/シミュレートされます)。

Django webtest 内から casperjs テストを実行する方法はありますか? 別の Web サーバーを起動せずに、さらに別のテスト データベースを使用しませんか?

ghost.py が存在するのを見たことがありますが、まだ試していません。

4

2 に答える 2

3

私は解決策を見つけることができました。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
于 2012-12-14T10:37:51.587 に答える