当我 运行 我的测试时,显示找不到夹具 pytest 错误
Fixture not found pytest error is being displayed when I run my test
这是我的 conf.py、baseClass.py 和实际测试文件 (test_e2e.py)。你能检查一下并让我知道我的代码有什么问题吗?看起来一切都很好,但我的测试仍然没有 运行ning 并显示 'fixture not found' 错误。
conf.py 文件
import pytest
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
@pytest.fixture(scope="class")
def setup(request):
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--start-maximized")
# chrome_options.add_argument("headless")
chrome_options.add_argument("--ignore-certificate-errors")
ser = Service("C://chromedriver.exe")
driver = webdriver.Chrome(service=ser,options=chrome_options)
driver.get('https://google.com')
request.cls.driver = driver
yield
driver.close()
Baseclass.py
import pytest
@pytest.mark.usefixtures("setup")
class BaseClass:
pass
主要测试文件
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from utilities.BaseClass import BaseClass
class TestOne(BaseClass):
def test_e2e(self):
self.driver.find_element(By.CSS_SELECTOR, "a[href*='shop']").click()
cards = self.driver.find_elements(By.CSS_SELECTOR, ".card-title a")
i = -1
for card in cards:
i = i + 1
cardText = card.text
print(cardText)
if cardText == "Blackberry":
self.driver.find_element(By.CSS_SELECTOR, ".card-footer button")[i].click()
执行后出现错误
============================= test session starts =============================
正在收集...收集了 1 件商品
test_e2e.py::TestOne::test_e2e 错误 [100%]
测试设置失败
文件 C:\Users\Admin\Desktop\pythonselframework\tests\test_e2e.py,第 8 行
def test_e2e(自我):
未找到 E 夹具 'setup'
available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, doctest_namespace, monkeypatch, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory
use 'pytest --fixtures [testpath]' for help on them.
我期待我的 selenium 测试 运行 顺利。我没有在我的文件中发现任何错误,但是当我 运行 我的测试文件时,它仍然显示错误。
Pytest 使用单个文件进行夹具发现,conftest.py
文件。然后,您应该将灯具声明存储在 conftest.py
文件中(而不是像您声明的那样存储在 conf.py
中)。此文件应存储在测试根文件夹中。
关于 conftest 文件的更多信息:here
这是我的 conf.py、baseClass.py 和实际测试文件 (test_e2e.py)。你能检查一下并让我知道我的代码有什么问题吗?看起来一切都很好,但我的测试仍然没有 运行ning 并显示 'fixture not found' 错误。
conf.py 文件
import pytest
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
@pytest.fixture(scope="class")
def setup(request):
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--start-maximized")
# chrome_options.add_argument("headless")
chrome_options.add_argument("--ignore-certificate-errors")
ser = Service("C://chromedriver.exe")
driver = webdriver.Chrome(service=ser,options=chrome_options)
driver.get('https://google.com')
request.cls.driver = driver
yield
driver.close()
Baseclass.py
import pytest
@pytest.mark.usefixtures("setup")
class BaseClass:
pass
主要测试文件
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from utilities.BaseClass import BaseClass
class TestOne(BaseClass):
def test_e2e(self):
self.driver.find_element(By.CSS_SELECTOR, "a[href*='shop']").click()
cards = self.driver.find_elements(By.CSS_SELECTOR, ".card-title a")
i = -1
for card in cards:
i = i + 1
cardText = card.text
print(cardText)
if cardText == "Blackberry":
self.driver.find_element(By.CSS_SELECTOR, ".card-footer button")[i].click()
执行后出现错误
============================= test session starts =============================
正在收集...收集了 1 件商品
test_e2e.py::TestOne::test_e2e 错误 [100%] 测试设置失败 文件 C:\Users\Admin\Desktop\pythonselframework\tests\test_e2e.py,第 8 行 def test_e2e(自我): 未找到 E 夹具 'setup'
available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, doctest_namespace, monkeypatch, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory use 'pytest --fixtures [testpath]' for help on them.
我期待我的 selenium 测试 运行 顺利。我没有在我的文件中发现任何错误,但是当我 运行 我的测试文件时,它仍然显示错误。
Pytest 使用单个文件进行夹具发现,conftest.py
文件。然后,您应该将灯具声明存储在 conftest.py
文件中(而不是像您声明的那样存储在 conf.py
中)。此文件应存储在测试根文件夹中。
关于 conftest 文件的更多信息:here