- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试运行相同的 unittest.TestCase
在多个数据集上。我的设置如下(尽可能简化):
from unittest import TestCase, TestSuite
class MyTest(TestCase):
def __init__(self, a, *args, **kwargs):
super().__init__(methodName="runTest", *args, **kwargs)
self.a = a
def setUp(self):
# something stateful that depends on self.a in the real use case
self.count = 0
def tearDown(self):
del self.count
def runTest(self):
self.test_a()
def test_a(self):
self.count += 1
self.assertGreaterEqual(self.a, 0)
test_data = tuple(range(5))
test_cases = tuple(MyTest(a) for a in test_data)
def suite():
test_suite = TestSuite()
test_suite.addTests(test_cases)
return test_suite
我可以使用 TextTestRunner
运行这 5 个测试
from unittest import TextTestRunner
TextTestRunner().run(suite())
很好用。
我想使用 unittests.main
运行它:
from unittest import main
main(verbosity=3)
一开始运行良好(数字 0, 1, .., 4
通过了测试)但随后将第 6 个参数传递给函数:str
ing 'test_a'
;这里测试当然失败了。
但最终目标是使用 unittest.TestLoader().discover()
运行它(这将从不同的 python 模块运行):
from unittest import TestLoader
from pathlib import Path
FILE = Path(__file__)
HERE_DIR = Path(FILE).parent
loader = TestLoader()
discovered_suite = loader.discover(start_dir=str(HERE_DIR), pattern=FILE.name)
TextTestRunner().run(discovered_suite)
如果我这样做,loader.discover(...)
行再次初始化 MyTest
六次而不是五次;最后一次使用 str
ing 'test_a'
。
我如何使用一个 TestCase
和多个参数设置此测试,以便我可以使用 unittest.TestLoader().discover()
运行它?
我终于找到了可能有用的方法:添加 load_tests
模块的方法:
def load_tests(loader, standard_tests, pattern):
return suite()
小警告:如上所述,测试仍然是第 6 次初始化......如何避免这种情况?
因为如果 MyTest
有多个参数:
class MyTest(TestCase):
def __init__(self, a, b, *args, **kwargs):
....
test_cases = tuple(MyTest(a, a) for a in test_data)
当加载程序试图将 'test_a'
作为唯一参数传递时,这会使测试崩溃:
TypeError: __init__() missing 1 required positional argument: 'b'
最佳答案
最后我放弃了,转而采用混合类型的方法(这里有一个有 2 个成员的例子:a
和 b
):
class MyTest:
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def setUp(self):
# something stateful in the real use case
self.count = 0
def tearDown(self):
del self.count
def runTest(self):
self.test_a()
def test_a(self):
self.count += 1
self.assertGreaterEqual(self.a, 0)
class Test0(MyTest, TestCase):
a = 0
b = 0
class Test1(MyTest, TestCase):
a = 1
b = 1
if __name__ == "__main__":
main(verbosity=3)
关于python - 单元测试 : same test class with mutliple datasets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57287658/
我正在尝试将多个值插入到一个表中,但我不确定语法..我正在从 excel 文件中读取这些值... import xlrd import pymssql file_location = 'C:/User
设置 我正在尝试运行相同的 unittest.TestCase在多个数据集上。我的设置如下(尽可能简化): from unittest import TestCase, TestSuite class
我有一个基于 Spring+Hibernate 构建的应用程序。我正在尝试将文件中的条目列表中的数据插入数据库。基本思想是插入所有具有有效数据的记录,并为所有未插入的条目记录错误报告。 一个服务类,即
我正在将 ASP.Net Web 窗体项目转换为 MVC3。母版页包含位于不同位置的多个内容占位符。 我用 @RenderBody() 替换了第一个内容占位符,但我对如何处理第二个内容感到困惑。 一种
我希望使用 ORMLite 按多个别名表进行分组,但我似乎遇到了问题。 当在 SqlExpression 的 GroupBy 中使用具有匿名类型的 Sql.TableAlias 时,为 group b
我目前正在开发 Silverlight 应用程序,需要将 XML 数据转换为适当的对象以进行数据绑定(bind)。本次讨论的基本类定义是: public class TabularEntry
如何在一个单个选项卡中添加多个组件(例如Label、Textfield和Button)? 我尝试创建一个包含多个组件的新表单,然后将该表单作为新选项卡添加到 TabbedPane 中,但它引发了异常:
我想知道这里是否有人能够成功地使用企业库跨 n 层结构工作,其中 UI 具有不同的媒介。 我必须设计一个 WCF 公共(public)库服务层,它将跨平台工作以下平台: 银光 WPF ASP.NET
我在我的 Solr schema.xml 文件中定义了一个多值字段来实现自动完成功能,如下所示: 但是,我看到这样的错误: ERROR [org.apache.solr.core.SolrCor
我是一名优秀的程序员,十分优秀!