­

unittest模組在linux報錯: AttributeError: module ‘unittest’ has no attribute ‘TestRunner’

  • 2020 年 6 月 20 日
  • 筆記

一開始在windows下運行沒有問題,但是在linux下運行卻報如下錯誤:

​ AttributeError: module ‘unittest’ has no attribute ‘TestRunner’,

在網上找了好多資料看了一下都提示存在與unittest模組同名的.py文件

但是我查了一點也沒有發現與之同名的文件,最後偶然間看到有人用TextTestRunner()這個方法於是把TestRunner換成TextTestRunner問題解決下面是我的程式碼:

import unittest
from selenium import webdriver
import time


class Search_KeyWords(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.url = "//www.baidu.com/"

    def test_search_davieyang(self):
        driver = self.driver
        driver.get(self.url)
        driver.find_element_by_id("kw").clear()
        driver.find_element_by_id("kw").send_keys("davieyang")
        driver.find_element_by_id("su").click()
        time.sleep(3)
        try:
            self.assertTrue("davieyang" in driver.page_source)
        except AssertionError as e:
            raise e

    def test_search_selenium(self):
        driver = self.driver
        driver.get(self.url)
        driver.find_element_by_id("kw").clear()
        driver.find_element_by_id("kw").send_keys("selenium")
        driver.find_element_by_id("su").click()
        time.sleep(3)
        try:
            self.assertTrue("davieyang" in driver.page_source)
        except AssertionError as e:
            raise e

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


if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(Search_KeyWords('test_search_davieyang'))
    suite.addTest(Search_KeyWords('test_search_selenium'))
    runner = unittest.TestRunner()
    runner.run(suite)

修改後的程式碼:

import unittest
from selenium import webdriver
import time


class Search_KeyWords(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.url = "//www.baidu.com/"

    def test_search_davieyang(self):
        driver = self.driver
        driver.get(self.url)
        driver.find_element_by_id("kw").clear()
        driver.find_element_by_id("kw").send_keys("davieyang")
        driver.find_element_by_id("su").click()
        time.sleep(3)
        try:
            self.assertTrue("davieyang" in driver.page_source)
        except AssertionError as e:
            raise e

    def test_search_selenium(self):
        driver = self.driver
        driver.get(self.url)
        driver.find_element_by_id("kw").clear()
        driver.find_element_by_id("kw").send_keys("selenium")
        driver.find_element_by_id("su").click()
        time.sleep(3)
        try:
            self.assertTrue("davieyang" in driver.page_source)
        except AssertionError as e:
            raise e

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


if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(Search_KeyWords('test_search_davieyang'))
    suite.addTest(Search_KeyWords('test_search_selenium'))
    runner = unittest.TextTestRunner()
    runner.run(suite)