Django/Selenium:非常简单的功能测试由于tearDown()而挂起

2024-09-30 18:23:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个非常简单的测试

class NewVisitorTest(unittest.TestCase):
    def setUp(self):
        self.browser = webdriver.Firefox()

    def tearDown(self):
        self.browser.quit()

    def test_can_see_homepage(self):
        self.browser.get('http://localhost:8000')
        self.assertIn('Floppers', self.browser.title)

if __name__ == '__main__':
    unittest.main(warnings='ignore')

这个测试看起来是完全运行的(浏览器打开和关闭),但是测试挂起并且从未真正完成。另一方面,如果我注释掉teardown()方法,它运行良好(但我必须手动关闭浏览器)。如果我在详细模式下运行,测试看起来像挂在test_can_see_homepage测试上。你知道吗

Adding permission 'Permission object (None)'
Adding permission 'Permission object (None)'
System check identified no issues (0 silenced).
test_root_url_resolves_to_splash__view (main.tests.unit.test_splash.SplashPage) ... ok
test_can_see_homepage (main.tests.functional.test_splash.NewVisitorTest) ...

它会一直这样下去。如果我ctrl + c离开它,那么它会向我显示结果,就好像它完成了一样。这里可能发生了什么,使用tearDown()方法会导致测试本身暂停?你知道吗

如果相关的话,我使用的是Arch-Linux w/Awesome-WM(以防由于我的设置或其他原因没有发送信号)。你知道吗


Tags: 方法testselfbrowsermaindef浏览器unittest