今天我尝试将django的LiveServerTestCase
与splinter
和phantomjs
webdriver相结合。
这是我做的(简化版):
class Test(LiveServerTestCase):
def setUp(self):
self.browser = Browser('phantomjs')
def tearDown(self):
self.browser.quit()
def test(self):
self.browser.visit(self.live_server_url)
self.assertIn("Hello world!", self.browser.title)
有时测试运行正常 - 即使每个测试方法执行第二次。但有时它可以随机地花费约100秒来执行单个测试方法,或者它只是冻结,直到我没有耐心等待它完成。
我使用django_nose
作为测试运行器,并将--liveserver=localhost:8081-8181
端口范围传递给./manage.py test
命令。
有没有办法加快速度?是否有其他网络测试跑步者哪个更快?
默认的Web驱动程序似乎在速度方面更可靠(每个测试方法1-3秒),但它仍然很慢。我也更喜欢无头浏览器进行测试。
答案 0 :(得分:6)
使测试变慢的原因是打开并在每次测试时关闭浏览器。一种改善测试时间的方法是打开浏览器一次。你可以使用setUpClass和tearDownClass来完成它。