私はdjango-seleniumを使用して、関与しているdjangoアプリでSeleniumテストを実行しています。この django アプリは、Qt とローカル Web サーバーを使用してローカルで実行されます。
したがって、テストを実行するには、アプリ用のサーバー、セレン サーバー、およびテストを実行するための webdriver インスタンスを起動する必要があります。
django-selenium はそのサーバーを a でセットアップしsubprocess.Popen('java -jar <path_to_server.jar>')
、サーバーが実行されていない場合は、アプリケーションに対して同様に Web サーバーを実行します。
def run():
path = os.path.join(os.getcwd(), 'main.py')
server_running = is_server_running()
if server_running is False:
subprocess.Popen(['python', path, '-a'])
テストセットアップでは、次のようになります。
def setUp(self):
self.server = Process(target= startServer.run)
self.server.start()
そして解体へ。
def tearDown(self):
# stop our server
self.ff.get('http://localhost:{0}/QUIT'.format(settings.LISTEN_PORT))
# stop the selenium server
self.ff.get('http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer')
# close the browser
self.ff.quit()
self.server.terminate()
これを行うと、error: [Errno 10054] An existing connection was forcibly closed by the remote host
. 接続を閉じるために呼び出しの間に追加しようとしましsleep
たが、それは役に立ちませんでした。
私がおそらく間違いを犯している場所がわかりますか?閉鎖がリモートホストからのものである場合、最初にサーバーを閉じ、次にセレンサーバーを閉じてから、サーバーがシャットダウンした後にプロセスを終了しても問題はないはずだと思いました。