我目前正在清理我的Django功能测试,以使用LiveServerTestCase,而不是从后台运行的开发环境实例中反弹基于硒的测试,我已经撞上了墙。每次尝试运行LiveServerTestCase测试时,都会出现以下错误:
======================================================================
ERROR: setUpClass (fun_tests.tests.backend.TestCmsLogin)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/user/Documents/env/local/lib/python2.7/site-packages/django/test/testcases.py", line 1187, in setUpClass
raise cls.server_thread.error
error: [Errno 98] Address already in use
超级有趣,考虑到
sudo netstat -netp | grep 8081
不会产生任何效果。一些背景:我用的是Django1.6,我用的是鼻子,DjangoNose,Nose Exclude,但我已经有效地将它们切掉,以帮助诊断问题。我使用的代码非常简单:from django.test import LiveServerTestCase
class TestCmsLogin(LiveServerTestCase):
def test_a_test_itself(self):
self.assertTrue(True)
我找不到关于这个问题的任何现有技术,Djangoproject的bug跟踪是干净的。我错过了什么?
编辑:今天早上,这个问题是不可恢复的,任何标记端口8081为打开的都不会再引起问题。
伊迪丝2:在我写的文章中把8081错误地打成了8082,修正了(并检查以确保我当时正确无误)。
最佳答案
您可以(在settings.py中)设置环境变量DJANGO_LIVE_TEST_SERVER_ADDRESS
以包括将要尝试的多个端口范围:
os.environ['DJANGO_LIVE_TEST_SERVER_ADDRESS']="localhost:8000-8010,8080,9200-9300"
我自己也有同样的问题,也许这能帮助别人。