【问题标题】:Python- unittest why SetUpClass gives attribute errorPython-unittest为什么SetUpClass给出属性错误
【发布时间】:2017-06-29 04:27:27
【问题描述】:

我正在使用 unittest 和 pytest

@pytest.mark.usefixtures("oneTimeSetUp","setUp")
@ddt
class SendformTest(unittest.TestCase):


    @pytest.fixture(autouse=True)
    def classSetup(self,oneTimeSetUp):
        self.sf = SendForms(self.driver)
        self.ts = TestStatus(self.driver)

    @classmethod
    def setUpClass(self):  ############ I want this method to run just once after login
        self.sf.navigateToCCForms("img")

当我尝试运行它时,我得到一个属性错误:

AttributeError:类型对象“SendformTest”没有属性“sf”

【问题讨论】:

  • 我猜setUpClassclassSetup 之前运行。您同时使用 pytest 和 unittest 是否有原因?据我了解,pytest 是用来代替 unittest,而不是作为它的补充。
  • 有人告诉我 pytest 赞美 unittest,这就是我学习硒的方式,所以从来没有学会只使用一个

标签: python selenium-webdriver pytest python-unittest


【解决方案1】:

虽然我对 pytest 并不完全熟悉,但通过快速的 google 搜索将我带到了他们关于使用 pytest with unittest.TestCase 的页面。底部的注释指出:

unittest.TestCase 方法不能直接接收夹具函数参数作为实现,这可能会影响运行一般 unittest.TestCase 测试套件的能力

所以我的猜测是你的夹具永远不会运行,导致你的 setUp 方法失败。

【讨论】:

    猜你喜欢
    • 2014-07-03
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多