pytest-BDD 配置文件
时间: 2025-01-08 18:21:52 浏览: 2
### 如何配置 `pytest-bdd` 设置文件
为了使 `pytest-bdd` 能够正常工作并与其他工具集成,通常需要在项目的根目录下创建一个名为 `conftest.py` 的配置文件。此文件用于定义全局的 fixture 和其他配置项。
#### 创建 `conftest.py`
```python
import pytest
from selenium import webdriver
from pytest_bdd import given, when, then, scenario
@pytest.fixture(scope="session")
def browser():
"""Initialize and provide a Selenium WebDriver instance."""
driver = webdriver.Chrome()
yield driver
driver.quit()
@given('I am on the homepage')
def i_am_on_the_homepage(browser):
browser.get("http://example.com")
@when('I navigate to "{section}" section')
def i_navigate_to_section(browser, section):
link = browser.find_element_by_link_text(section)
link.click()
@then('the title should be "{expected_title}"')
def check_page_title(browser, expected_title):
assert browser.title == expected_title
```
上述代码展示了如何通过 `conftest.py` 来初始化浏览器实例以及定义一些基本的操作函数[^1]。
#### 定义 BDD 测试场景
除了 `conftest.py` 外,在测试目录中还需要有 `.feature` 文件来描述具体的业务逻辑和预期行为:
```gherkin
Feature: User Navigation
Scenario Outline: Navigate through sections of website
Given I am on the homepage
When I navigate to "<section>" section
Then the title should be "<title>"
Examples:
| section | title |
| About | About Example Domain|
| Services | Our Services |
| Contact Us | Get In Touch |
```
这段 Gherkin 文本用来指定不同页面之间的导航路径及其对应的标题验证[^4]。
#### 执行测试
完成以上两部分之后就可以执行测试了。只需简单地运行 `pytest` 命令即可自动发现所有的 feature 文件并按照给定的 step definitions 进行匹配处理[^2]。
阅读全文