gpt4 book ai didi

python - 如何参数化单元测试测试方法

转载 作者:太空宇宙 更新时间:2023-11-04 00:17:08 25 4
gpt4 key购买 nike

我在一个类中包含一组 python/selenium/unittest 测试:

class TestProject(unittest.TestClass):
def test001_create_project(self):
...
def test002_project_wizard_page1(self, projectName, projectDescription):
....
def test003_project_wizard_page2(self):
....
def test004_project_wizard_finish(self):
....

我需要按上述顺序在一个 block 中运行测试方法,因为它们会在我的 Web 应用程序上通过向导运行。但是,我希望能够将各种参数传递给测试方法,如 projectName、projectDescription 等。使用 unittest,我如何运行一组大约 10 次迭代的测试,将不同的参数传递给 test002_project_wizard_page1?

最佳答案

您的编号测试实际上只是单个测试的一部分。您应该定义为单独测试的是使用您的参数集的函数。

class TestProject(unittest.TestCase):
def _create_project(self):
...
def _page1(self, projectName, projectDescription):
...
def _page2(self):
...
def _finish(self):
...

def _run(self, name, descr):
self._create_project()
self._page1(name, descr)
self._page2()
self._finish()

def test001(self):
self._run("foo", "do foo")

def test002(self):
self._run("bar", "do bar")

# etc

一个可以减少一些样板的有趣模块是 ddt project .

import ddt

@ddt.ddt
class TestProject(unittest.TestCase):
def _create_project(self):
...
def _page1(self, projectName, projectDescription):
...
def _page2(self):
...
def _finish(self):
...

@ddt.data(
("foo", "do foo"),
("bar", "do bar"),
# etc
)
@ddt.unpack
def test_run(self, name, descr):
self._create_project()
self._page1(name, descr)
self._page2()
self._finish()

关于python - 如何参数化单元测试测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50514539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com