我正在使用 unittest.TestCase 如果我有超过 1 个测试用例,它不会 运行。只有 1 个测试用例 运行s
I am using unittest.TestCase if i have more than 1 test case it will not run. Only 1 test case runs
我正在自动化我们的网站。我正在使用 Python、Webdriver、unittest.TestCase
。
我在登录页面 class 中定义了 1 个测试方法,用于测试有效的用户登录。效果很好。
现在我正在添加一个名为 test_login_invalid_user 的第二个测试方法来测试无效的用户登录。我只是浏览到登录页面以开始查看第二个测试方法是否在我时被调用运行我的测试。
当我 运行 我的代码出现以下错误:
Traceback (most recent call last):
File "C:\Users\riaz.ladhani\PycharmProjects\Selenium Webdriver\ClearCore \LoginPage_TestCase.py", line 40, in test_login_invalid_user
login_page = page.login(self.driver)
AttributeError: 'module' object has no attribute 'login'
单元测试中的测试方法不能超过 1 种吗?
我做错了吗?
我的单元测试class代码片段如下:
import unittest
from selenium import webdriver
import page
import time
class LoginPage_TestCase(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Ie("C:\QA\Automation\Python_projects\Selenium Webdriver\IEDriverServer_Win32_2.45.0\IEDriverServer.exe")
self.driver.get("http://riaz-pc.company.local:8080/clearcore")
def test_login_valid_user(self):
login_page = page.LoginPage(self.driver)
login_page.userLogin_valid()
login_page.isAdministration_present()
assert login_page.isAdministration_present(), "Administration not found"
if login_page.isAdministration_present() == "true":
print "test login with a valid user passed"
else:
print "test login with a valid user failed"
def test_login_invalid_user(self):
print "test_login_invalid_user"
login_page = page.login(self.driver)
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()
据我了解,您的意思是定义一个新的 LoginPage
页面对象实例:
def test_login_invalid_user(self):
print "test_login_invalid_user"
login_page = page.LoginPage(self.driver)
如果是这种情况,为避免违反"DRY"原则并提高可读性,在setUp()
中实例化LoginPage
:
class LoginPage_TestCase(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Ie("C:\QA\Automation\Python_projects\Selenium Webdriver\IEDriverServer_Win32_2.45.0\IEDriverServer.exe")
self.driver.get("http://riaz-pc.company.local:8080/clearcore")
self.login_page = page.LoginPage(self.driver)
def test_login_valid_user(self):
self.login_page.userLogin_valid()
self.login_page.isAdministration_present()
assert self.login_page.isAdministration_present(), "Administration not found"
if self.login_page.isAdministration_present() == "true":
print "test login with a valid user passed"
else:
print "test login with a valid user failed"
def test_login_invalid_user(self):
print "test_login_invalid_user"
# use self.login_page here
我正在自动化我们的网站。我正在使用 Python、Webdriver、unittest.TestCase
。
我在登录页面 class 中定义了 1 个测试方法,用于测试有效的用户登录。效果很好。
现在我正在添加一个名为 test_login_invalid_user 的第二个测试方法来测试无效的用户登录。我只是浏览到登录页面以开始查看第二个测试方法是否在我时被调用运行我的测试。
当我 运行 我的代码出现以下错误:
Traceback (most recent call last):
File "C:\Users\riaz.ladhani\PycharmProjects\Selenium Webdriver\ClearCore \LoginPage_TestCase.py", line 40, in test_login_invalid_user
login_page = page.login(self.driver)
AttributeError: 'module' object has no attribute 'login'
单元测试中的测试方法不能超过 1 种吗? 我做错了吗?
我的单元测试class代码片段如下:
import unittest
from selenium import webdriver
import page
import time
class LoginPage_TestCase(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Ie("C:\QA\Automation\Python_projects\Selenium Webdriver\IEDriverServer_Win32_2.45.0\IEDriverServer.exe")
self.driver.get("http://riaz-pc.company.local:8080/clearcore")
def test_login_valid_user(self):
login_page = page.LoginPage(self.driver)
login_page.userLogin_valid()
login_page.isAdministration_present()
assert login_page.isAdministration_present(), "Administration not found"
if login_page.isAdministration_present() == "true":
print "test login with a valid user passed"
else:
print "test login with a valid user failed"
def test_login_invalid_user(self):
print "test_login_invalid_user"
login_page = page.login(self.driver)
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()
据我了解,您的意思是定义一个新的 LoginPage
页面对象实例:
def test_login_invalid_user(self):
print "test_login_invalid_user"
login_page = page.LoginPage(self.driver)
如果是这种情况,为避免违反"DRY"原则并提高可读性,在setUp()
中实例化LoginPage
:
class LoginPage_TestCase(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Ie("C:\QA\Automation\Python_projects\Selenium Webdriver\IEDriverServer_Win32_2.45.0\IEDriverServer.exe")
self.driver.get("http://riaz-pc.company.local:8080/clearcore")
self.login_page = page.LoginPage(self.driver)
def test_login_valid_user(self):
self.login_page.userLogin_valid()
self.login_page.isAdministration_present()
assert self.login_page.isAdministration_present(), "Administration not found"
if self.login_page.isAdministration_present() == "true":
print "test login with a valid user passed"
else:
print "test login with a valid user failed"
def test_login_invalid_user(self):
print "test_login_invalid_user"
# use self.login_page here