Selenium WebDriverException:消息:在jenkins服务器上运行Django测试时,地址不可用

时间:2019-04-28 10:19:33

标签: django selenium docker jenkins liveservertestcase

我已经在docker上运行了一个AWS EC2实例。使用docker-compose,我在一个容器中运行了詹金斯。我有一个jenkins管道,用于检出我的存储库(这是一个Djano应用程序,带有docker文件)。然后,我的管道使用Docker文件构建docker映像。这是在主机docker守护程序上构建的,因为我已将这些卷映射到docker-compose文件中

volumes:
   - /var/run/docker.sock : /var/run/docker.sock

该映像已成功构建,我可以使用jenkins管道在该映像中运行命令

img = docker.build(....)
img.inside{
    sh '.....'
}

但是当我尝试使用来运行Django测试

img.inside{
   sh 'python manage.py test'
}

从TestCase继承的测试成功运行。但是我有一些测试,它们是StaticLiverServerTestCase的子集,它们使用硒。尝试初始化Webdriver实例时出现错误:

browser = WebDriver()

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: address not available.

这些测试可以在本地计算机上完全相同的设置上成功运行

docker-compose run web python manage.py test

我的猜测是,AWS安全组和端口访问可能有问题。 LiveServerTestCase可能通过尝试使用AWS安全组不允许的端口。但是我尝试启用从内部流量到所有端口的TCP访问,但这也行不通。

请让任何人遇到类似的问题或对我有任何提示。

0 个答案:

没有答案