pytest-在测试之前和之后设置和断开连接

问题描述

我有一个测试代码,我想将其从unittest转换为pytest。它具有带有setUp和tearDown函数的类,应在测试本身之前和之后执行。当我使用pytest运行此代码时,它可以完美运行:

from selenium import webdriver
from unittest import TestCase

class TestClass(TestCase):
    def setUp(self):
        self.PATH = "C:\chromedriver.exe"
        self.driver = webdriver.Chrome(self.PATH)
        self.test_path = "exaple.com"
        self.driver.get(self.test_path)
        
    def test_element(self):
        self.main = self.driver.find_element_by_ID("main")
        template = "should look like this"
        assert self.main.text == template
        
    def tearDown(self):
        self.driver.quit()

但是在我尝试将其更改为pytest后:

from selenium import webdriver
import pytest

class TestClass():
    def setUp(self):
        self.PATH = "C:\chromedriver.exe"
        self.driver = webdriver.Chrome(self.PATH)
        self.test_path = "exaple.com"
        self.driver.get(self.test_path)
        
    def test_element(self):
        self.main = self.driver.find_element_by_ID("main")
        template = "should look like this"
        assert self.main.text == template
        
    def tearDown(self):
        self.driver.quit()

我开始收到错误消息:

AttributeError:“ TestClass”对象没有属性“ driver”

看起来pytest认不运行setUp和tearDown函数。请告诉我有解决方法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)