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

时间:2017-03-20 10:30:23

标签: python unit-testing selenium

我编写了类似于下面代码的代码来实现我的要求,但是我收到了错误信息。

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创建记录(尽管它可以单独运行)。我收到的错误信息是我上次的测试。

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),只有当我从另一个测试中调用第一个测试方法时才会得到,但是当我单独运行它时它运行良好。知道我可能会缺少什么吗?非常感谢

1 个答案:

答案 0 :(得分:1)

无需在其中创建您的类的实例,只需使用self引用该实例:

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