簡體   English   中英

具有多個測試類的python單元測試

[英]python unittests with multiple test classes

我正在研究 Python 單元測試。 我想根據頁面/模塊隔離我的測試用例。 使用 unittest.TestCase 時,每個類都需要有一個 setUp 方法來初始化我的頁面實例。 這會導致瀏覽器的新實例隨着每個測試用例類的運行而打開。 我該怎么做才能在同一個瀏覽器實例下一次又一次地運行所有測試用例類?

登錄測試.py

browser_input = input("Select a Browser: Firefox, Chrome, IE\n").lower()
class LoginTests(unittest.TestCase):

    @classmethod
    def setUpClass(cls):

        browser = BrowserMachine(cls)
        cls.driver = browser.open_browser(cls, browser_input)
        cls.LoginPage = LoginPage(cls.driver)
        cls.HomePages = HomePages(cls.driver)

    def testcaseA(self):

主頁測試.py

class HomepageTests(unittest.TestCase):

    @classmethod
    def setUpClass(cls):

        browser = BrowserMachine(cls)
        cls.driver = browser.open_browser(cls, LT.browser_input)
        cls.LoginPage = LoginPage(cls.driver)
        cls.HomePages = HomePages(cls.driver)

    def testcaseB(self):

使BrowserMachine成為一個全局變量(模塊級;您可以為此創建一個單獨的模塊。然后兩個類都應該使用它。

BrowserMachine將無法引用該類 ( cls ),但您只需要一個BrowserMachine任何人,而不是每個類一個。

如何創建一個主要的BrowserPageBrowserMachine類,它是一個 unittest.TestCase 並讓所有其他頁面類繼承它。

這樣你就可以在 BrowserPage 類中聲明你的所有方法或屬性(比如定義個性化的find_byclick_byscroll_to等...動作)。 您的網頁類將能夠調用這些方法和屬性或重寫他們(像click_loginLoginTests類,使用您BrowserPageclick_by方法在特定的登錄字符串),有indivudual安裝和拆卸。

如果你在主類的 setUpClass 中聲明你的驅動程序並在它的 tearDownClass 中quit它,你應該能夠在你的測試中使用相同的網頁。 除非您需要在其他頁面類中生成它的新實例(例如,在主測試運行時在后台執行某些操作)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM