創建截圖目前,我有一個創建一個截圖功能,我把這裏僅在測試失敗
def tearDown(self):
self.save_screenshot()
self.driver.quit()
還有被創建,用來存儲截圖的文件夾。
我不想在測試通過時發生這種情況。
爲了避免這種情況發生,我必須添加什麼?
感謝所有幫助
創建截圖目前,我有一個創建一個截圖功能,我把這裏僅在測試失敗
def tearDown(self):
self.save_screenshot()
self.driver.quit()
還有被創建,用來存儲截圖的文件夾。
我不想在測試通過時發生這種情況。
爲了避免這種情況發生,我必須添加什麼?
感謝所有幫助
這裏是捕獲屏幕截圖的一種方式,只有當故障:
def setUp(self):
# Assume test will fail
self.test_failed = True
def tearDown(self):
if self.test_failed:
self.save_screenshot()
def test_something(self):
# do some tests
# Last line of the test:
self.test_failed = False
,是在試驗的最後一行,我們知道該測試通過(例如,所有的self.assert這種方法的原理是*通過)。此時,我們重置test_failed
成員,該成員在setUp
中設置爲True。在tearDown
中,我們現在可以判斷測試是否通過,並在適當的時候進行截圖。
在你的初始化方法中設置一個self.NoFailuresSnapped = 0
和之前調用或在函數中檢查故障是> self.NoFailuresSnapped
目前一些測試環境,當然在返回之前再次設定。
如果您的測試失敗,sys.exc_info將會有例外。所以,你可以把它作爲通過/失敗測試結果:
if sys.exc_info()[0]:
# 'Test Failed'
else:
# 'Test Passed'
如果你想利用一個屏幕截圖上的失敗:
import unittest
import sys
from selenium import webdriver
class UrlTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
def test_correct_url(self):
self.driver.get('https://google.com')
self.assertTrue('something.com' in self.driver.current_url)
def tearDown(self):
if sys.exc_info()[0]:
self.driver.get_screenshot_as_file('screenshot.png')
self.driver.quit
if __name__ == '__main__':
unittest.main()
你能分享你怎麼跑的測試?謝謝。 – alecxe
Idk你的意思,像命令行或單元測試? – programiss
如何從命令行運行它們,正確。另外,你使用的是什麼Python版本? – alecxe