检索当前运行的测试用例的名称

时间:2015-09-04 14:54:37

标签: python testing selenium-webdriver pytest

我已经看过如何检索为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",将其打印到屏幕或用文件名。

1 个答案:

答案 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上的示例。