我正在使用unittest.TestCase,如果我有超过1个测试用例,它将无法运行。只运行一个测试用例

时间:2015-05-12 10:36:53

标签: python testing selenium-webdriver webdriver python-unittest

我正在自动化我们的网站。我正在使用Python,Webdriver,unittest.TestCase

我在登录页面类中定义了一个测试方法,用于测试有效的用户登录。这很好。

现在我正在添加一个名为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种测试方法吗? 我做错了吗?

我的单元测试类代码段如下:

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()

1 个答案:

答案 0 :(得分:2)

据我所知,您的意思是定义一个新的LoginPage页面对象实例:

def test_login_invalid_user(self):
    print "test_login_invalid_user"
    login_page = page.LoginPage(self.driver)

如果是这种情况,请避免违反" DRY"原则并提高可读性,在LoginPage中实例化setUp()

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