![](/img/trans.png)
[英]how to write integration tests using pytest and how to repeat the integration tests
[英]How to write functional/integration tests in Selenium Python
我是新手測試,我想
1)測試登錄
2)創建一個文件夾
3)將內容(頁面)添加到文件夾中
我已經編寫了每個測試並且它們工作但顯然我想建立彼此的ontop,例如,為了做3我需要做1然后2.為了做2我需要做1.這是我的基本測試結構:
class TestSelenium(unittest.TestCase):
def setUp(self):
# Create a new instance of the Firefox driver
self.driver = webdriver.Firefox()
def testLogin(self):
print '1'
...
def testFolderCreation(self):
print '2'
...
def testContentCreation(self):
print '3'
...
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
起初,我認為測試會按順序運行,第二個功能會在第一個功能停止的地方繼續,但我發現情況並非如此,似乎每次測試都會重新開始。 我也意識到它們以相反的順序執行。 我在終端輸出了3,2,1。 我應該如何實現我想要的? 如果我在運行我想要的那個之前調用前面的函數,我覺得它反復測試同樣的東西,因為每個函數都是一個測試(例如,在testContentCreation
,我會調用'testLogin'然后調用testFolderCreation
並在testFolderCreation
調用testLogin
。如果我要做更多的事情, testLogin
會被多次調用!)。 我是否應該將前面的步驟轉換為常規的非測試函數,並在最后的最后一個(測試函數)中按順序調用前面的步驟? 如果我這樣做那么我猜如果任何步驟失敗,最后一個失敗,將有一個大的測試功能。
關於如何編寫此類測試的任何建議? 另外,為什么測試以相反的順序運行?
謝謝!
你看到你所看到的,我想,因為你所做的關於假設的一些不正確的假設unittest
做。 假設每個測試用例都是一個獨立的實體,因此不會強制執行運行順序。 此外, SetUp()
和TearDown()
在每個案例之前和之后運行。 如果要進行全局設置/拆卸,則需要創建名為SetUpClass()
和TearDownClass()
。 您可能還想查看TestSuite
類。 更多信息: http : //docs.python.org/library/unittest.html
請記住,當unittest庫進行測試發現(反映您的測試用例類以查找要運行的測試用例)時,它基本上僅限於查看對象的.__dict__
和dir()
值,這些值本質上是無序的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.