我是测试新手,我想
1) 测试登录
2) 创建文件夹
3)将内容(一页)添加到文件夹中
我编写了每个测试并且它们可以工作,但显然我想建立在彼此之上,例如,为了做 3 我需要先做 1 然后 2。为了做 2 我需要做 1。这是我的基本测试结构:
class TestSelenium(unittest.TestCase):
def setUp(self):
# Create a new instance of the Firefox driver
self.driver = webdriver.Firefox()
def testLogin(self):
print '1'
...
def testFolderCreation(self):
print '2'
...
def testContentCreation(self):
print '3'
...
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
起初,我以为测试会按顺序运行,第二个函数会从第一个函数停止的地方继续,但我发现情况并非如此,似乎每次测试都重新开始。我也意识到它们以相反的顺序执行。我在终端中得到 3,2,1 的输出。我应该如何实现我想要的?如果我在运行我想要的函数之前调用前面的函数,我觉得它是在一遍又一遍地重复测试同一件事,因为每个都是一个测试(例如,在 中testContentCreation
,我会调用 'testLogin' 然后调用testFolderCreation
和内部testFolderCreation
调用testLogin
。如果我要做的更多,testLogin
会被多次调用!)。我是否应该将前面的步骤变成常规的非测试函数,并在最后一个(测试函数)中按顺序调用前面的步骤?如果我这样做,那么我猜如果任何步骤失败,最后一个失败,就会有一个大的测试功能。
关于如何编写此类测试的任何建议?另外,为什么测试以相反的顺序运行?
谢谢!