问题
I am using django for a webapp and I'm using docker to deploy it. I need to test it in the container with selenium. I'm using selenium grid for testing. In order to connect with the liveserver on the docker, i need to port forward a specific port, but as far as i read in the django docs, LiveServerTestCase uses port 0, which means random port every time i run the tests. Since --liveserver options is deprecated, is there any other way to set the port of the test server or a smarter way to test it with selenium ?
Thanks in advance !
回答1:
If anyone is wondering this is how I did it: Override method setUpClass, which starts the thread on which the server run
@classmethod
def setUpClass(cls):
cls.host = "example.com" # or ip
cls.port = 12345
super(ExampleTestCase, cls).setUpClass()
回答2:
According to the Django 1.11 release notes you should set the port
attribute on the LiveServerTestCase
:
If you need to bind
LiveServerTestCase
to a specific port, use theport
attribute added in Django 1.11.2.
回答3:
All the previous answers work well, but the most succinct way to set the port is as follows:
class MyTestCase(LiveServerTestCase):
port = 12345
来源:https://stackoverflow.com/questions/47887156/setting-liveserver-port-when-running-tests-in-django