我已经看过如何检索为Python Selenium Unittest运行的当前测试用例的名称。
unittest.TestCase.id()
如何使用Webdriver Py.test框架实现这一目标?我没有使用unittest框架,所以我的测试看起来像这样:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.common.exceptions import *
import pytest, re, time, unicodedata
from pageobjects import locators
from os import sys, path
sys.path.append( path.dirname( path.dirname( path.abspath(__file__) ) ) )
def test_PointsBlockingTableNavigationPageLinksBlockingPointsOnly02(driver, url):
所以基本上,我想检索名称"test_PointsBlockingTableNavigationPageLinksBlockingPointsOnly02"
,将其打印到屏幕或用文件名。
答案 0 :(得分:3)
如果您使用unittest
框架,这实际上是相同的。
Selenium是一种浏览器自动化工具,而不是测试框架。例如,这里我们有一个unittest
测试用例,其中使用了硒:
class MyTestCase(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def test_title(self):
self.driver.get("https://google.com")
self.assertEqual(self.driver.title, "Google")
如果是pytest
,您是否考虑过使用pytest-splinter
套餐? splinter
是python selenium绑定的一个方便的包装器。包can take automatic screenshots on failures:
当您的功能测试失败时,了解原因非常重要。 当在连续体上运行测试时,这变得很难 集成服务器,您无法调试(使用--pdb)。简化 事情,浏览器夹具的特殊行为是可用的,其中 截取测试失败的屏幕截图并将其放在带有a的文件夹中 命名约定与jenkins插件兼容。 HTML内容 浏览器页面也存储,这对调试很有用 html源码。
通常,pytest术语中的完整测试方法名称称为nodeid
。有多种方法可以检索它。其中一个是基于TerminalReporter
读取失败标题的自定义报告者,请参阅pytest-wholenodeid
上的示例。