python 测试用例的无输入_每个输入文件都有单独的测试用例?

大多数测试框架假设“1test=1python方法/函数”,

当函数在没有

提出主张。在

我正在测试一个类似编译器的程序(一个读取*.foo的程序)

文件并处理它们的内容),我想对许多输入(*.foo)文件执行相同的测试。我的测试看起来像:class Test(unittest.TestCase):

def one_file(self, filename):

# do the actual test

def list_testcases(self):

# essentially os.listdir('tests/') and filter *.foo files.

def test_all(self):

for f in self.list_testcases():

one_file(f)

我当前的代码使用

unittest来自

Python的标准库,即one_file使用self.assert...(...)

语句来检查测试是否通过。在

从某种意义上说,这是可行的,我确实得到了一个成功/失败的程序

当我的代码没问题,但我失去了

测试框架:我没有得到像“Y测试中的X个失败”这样的相关报告,也没有

通过/失败测试的列表。(我计划使用这样的系统

不仅是为了测试我自己的发展,也为了给学生的代码评分

作为一名教师,报告对我来说很重要)

我没有测试独立性。第二个测试在

环境留下的第一个,等等。第一次故障停止

testsuite:失败后的测试用例根本不运行。

我觉得我在滥用我的测试框架:只有

一个测试功能,这样单元测试声音的自动测试发现

例如过度杀戮。同样的代码可以(应该?)写在

带有基本assert的普通Python。

一个明显的替代方法是将我的代码改为

^{pr2}$

然后,我又获得了unittest的所有优点,但是:要写的代码多得多。

很容易“忘记”一个测试用例,即在

tests/并忘记将其添加到Python测试中。

我可以想象一个解决方案,其中我将动态地为每个测试用例生成一个方法(沿着setattr(self, 'test_file' + str(n), ...))的行来生成第二个解决方案的代码,而不必手工编写它。但是对于一个看起来并不复杂的用例来说,这听起来真的是太过分了。在

我怎样才能两者兼得呢。

自动测试用例发现(列出tests/*.foo文件),测试

独立性和适当的报告?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值