python - 我可以在第一个断言失败后测试测试的所有断言吗?

标签 python django unit-testing

我有一个不同音频格式的列表,某个文件应该转换成这些格式。我编写的转换函数,现在应该转换文件并返回成功信息、新创建文件的路径或一些失败信息。

self.AUDIO_FORMATS = ({'format':'wav', 'samplerate':44100, 'bitdepth':16 },
                      {'format':'aac', 'samplerate':44100, 'bitdepth':16 },
                      {'format':'ogg', 'samplerate':44100, 'bitdepth':16 },
                      {'format':'mp3', 'samplerate':44100, 'bitdepth':16 } )

由于其中一个转换失败的一个可能原因是缺少库,或者此类库或我对它的实现中的某些错误或失败,我想测试每个转换以获得通过和失败测试的列表最后,失败的人会准确地告诉我是哪个转换导致了问题。这是我尝试过的(有点简化):

def test_convert_to_formats(self):

    for options in self.AUDIO_FORMATS:
        created_file_path, errors = convert_audiofile(self.audiofile,options)
        self.assertFalse( errors )
        self.assertTrue( os.path.isfile(created_file_path),

当然,这是在第一次转换失败后立即中止测试。我可以为每个转换编写一个测试函数。这将导致必须为每个添加的格式编写一个新的测试,现在我只需要向我的 AUDIO_FORMATS 元组添加一个新的字典。

最佳答案

不是断言,而是将错误存储在一个数组中。在迭代结束时,断言错误数组为空,并可能转储数组的内容作为断言失败的原因。

关于python - 我可以在第一个断言失败后测试测试的所有断言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10277806/

相关文章:

python - Windows 10 上的 Tensorflow 安装问题

Django给无法在没有主键的情况下强制更新save()

django - 在南方数据迁移中使用 django-taggit?

Django SMTP 身份验证最佳实践

c# - 在单元测试中模拟类中的类

vb.net - 使用 Microsoft Fakes 模拟数据库

python - 如何使用selenium python从动态表中提取数据?

python - 与变量一起使用的 10e 符号?

java - PendingTransactionsTest 类型的给定方法未定义

algorithm - 查找字符串是否与 Python 中该类型对象列表中对象的属性值匹配的最短方法