使用 xvfb + PyCharm + vagrant 设置测试
Setting a test using xvfb + PyCharm + vagrant
我有这个环境:
- PyCharm 运行宁 Mac OS X
- Python3.4 环境 运行 在 Ubuntu 服务器上 vagrant 实例
我希望能够使用 PyCharm 进行 run/debug 测试。到目前为止我可以做到,但我最近在我的测试中添加了 selenium,现在我需要将 python 解释器包装在 xvfb-运行 远程命令中。我尝试添加一个远程外部工具,但我还不能让它工作。我找到了 this guy 但他并没有很好地解释他是如何做到的。任何想法将不胜感激:-)
感谢this answer,我在不添加外部工具的情况下解决了。步骤:
- 已在远程 python 环境中安装 xvfbwrapper
代码示例:
from selenium.webdriver.firefox.webdriver import WebDriver
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from xvfbwrapper import Xvfb
class UITestCase(StaticLiveServerTestCase):
fixtures = ['data.json']
@classmethod
def setUpClass(cls):
cls.vdisplay = Xvfb()
cls.vdisplay.start()
cls.selenium = WebDriver()
cls.selenium.implicitly_wait(3000)
super(UITestCase, cls).setUpClass()
@classmethod
def tearDownClass(cls):
cls.selenium.quit()
cls.vdisplay.stop()
super(UITestCase, cls).tearDownClass()
def test_list(self):
self.selenium.get('%s%s' % (self.live_server_url, '/#/app'))
count = len(self.selenium.find_elements_by_xpath('//*[@id="data"]/tbody/tr'))
self.assertEqual(count, 2)
- 您的测试配置无需更改(假设它已经 运行 成功)
我有这个环境:
- PyCharm 运行宁 Mac OS X
- Python3.4 环境 运行 在 Ubuntu 服务器上 vagrant 实例
我希望能够使用 PyCharm 进行 run/debug 测试。到目前为止我可以做到,但我最近在我的测试中添加了 selenium,现在我需要将 python 解释器包装在 xvfb-运行 远程命令中。我尝试添加一个远程外部工具,但我还不能让它工作。我找到了 this guy 但他并没有很好地解释他是如何做到的。任何想法将不胜感激:-)
感谢this answer,我在不添加外部工具的情况下解决了。步骤:
- 已在远程 python 环境中安装 xvfbwrapper
代码示例:
from selenium.webdriver.firefox.webdriver import WebDriver from django.contrib.staticfiles.testing import StaticLiveServerTestCase from xvfbwrapper import Xvfb class UITestCase(StaticLiveServerTestCase): fixtures = ['data.json'] @classmethod def setUpClass(cls): cls.vdisplay = Xvfb() cls.vdisplay.start() cls.selenium = WebDriver() cls.selenium.implicitly_wait(3000) super(UITestCase, cls).setUpClass() @classmethod def tearDownClass(cls): cls.selenium.quit() cls.vdisplay.stop() super(UITestCase, cls).tearDownClass() def test_list(self): self.selenium.get('%s%s' % (self.live_server_url, '/#/app')) count = len(self.selenium.find_elements_by_xpath('//*[@id="data"]/tbody/tr')) self.assertEqual(count, 2)
- 您的测试配置无需更改(假设它已经 运行 成功)