如何在unittest框架中从另一个测试中调用测试方法?

3

我编写了类似下面代码的代码以满足我的需求,但是我收到了错误消息。

class Test(BaseSetup):

    def test_01_create_record(self):        
        --
    def test_02_edit_record(self):
        --
    def test_03_delete_record(self):   
        --
    def test_04_verify_item_tab(self):
        testObj=Test()
        testObj.test_01_create_record()
        do this....
        testObj.test_03_delete_record()        

if __name__ == '__main__':       
    unittest.main()

这里的前三个测试方法(test_01、test_02和test_03)都可以正常运行,但是最后一个测试——即test_04失败了。它无法使用test_01创建记录(虽然单独使用test_01时可以正常工作)。我在我的最后一个测试中收到以下错误消息。

self.driver.find_element_by_xpath(self.content_tab_xpath).click()
AttributeError: 'NoneType' object has no attribute 'find_element_by_xpath'

上面的错误信息是针对第一个测试(test_01_create_record)的,只有当我从另一个测试中调用第一个测试方法时才会出现这个错误,但是当我单独运行它时,它能够正常工作。你有什么想法我可能遗漏了什么?非常感谢。

3
为什么要在类的方法内部创建一个新的实例?你认为self是什么? - jonrsharpe
哦,太好了,我只需要调用self.test_01_create_record()。这里不需要创建类的实例。非常感谢! - Shoaib Akhtar
1个回答

4

无需在类内部创建实例,只需使用self引用实例:

def test_04_verify_item_tab(self):
    self.test_01_create_record()
    self.test_03_delete_record()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接