明明有tests为什么还说no tests呢?而且也没有其他明显的错误?
后面研究了好久才发现,在pycharm中使用 unittest框架 时,每个测试方法都应该遵循 testXX 的规律,这样才能识别出来是一个测试方法【为了分清方法执行的先后顺序,可在test后面加数字】,你没说明那是测试方法,自然就识别不出来了。
这里我写了一个简单的例子:
import unittest
from time import sleep
from selenium import webdriver
driver=None
class unitTestMock(unittest.TestCase):
@classmethod
def setUpClass(cls):
global driver
driver = webdriver.Chrome()
driver.maximize_window()
print("运行setUpClass...")
def setUp(self):
print("运行setUp...")
def test1_WebTours(self):
driver.get("http://localhost:1080/WebTours/")
sleep(3)
def test2_Login(self):
driver.switch_to.default_content()
driver.switch_to.frame("body")
driver.switch_to.frame("navbar")
driver.find_element_by_name("username").clear()
driver.find_element_by_name("password").clear()
driver.find_element_by_name("username").send_keys("LiHang")
driver.find_element_by_name("password").send_keys("123456")
# 点击登录按钮
driver.find_element_by_name("login").click()
sleep(3)
def test3_ClickFlights(self):
driver.switch_to.default_content()
driver.switch_to.frame("body")
driver.switch_to.frame("navbar")
driver.find_element_by_xpath("//img[@alt=\"Search Flights Button\"]").click()
sleep(3)
def tearDown(self):
print("运行tearDown...")
@classmethod
def tearDownClass(cls):
driver.quit()
print("运行tearDownClass...")
if __name__=="__main__":
unittest.main(verbosity=2)
一共写了三个测试方法,分别是 test1_WebTours、test2_Login、 test3_ClickFlights,执行顺序也就是1,2,3。