【发布时间】:2022-01-15 18:06:33
【问题描述】:
需要一个方法来按测试用例定义顺序运行unittest,但是找了很久没有可用的方法。
例如,有多个关于声音的测试,其中两个是test_AiSound_stream01 & test_AiSound_stream02。然后我们发现AiSound本身可能效果不好,所以再添加一个测试test_AiSound_feasibility。这两个测试只有在第三个通过时才会运行,否则它们将被跳过(或设置为错误)。
我希望第三个显示 AiSound 功能当前是否正常。而另外两个,我想测试一些特定流的播放能力。
最后我想出了一个主意,把它放在这里,以防万一可能需要相同答案的人。
如果有更好的方法,请分享。
【问题讨论】:
-
更好的方法是不依赖于测试运行的顺序,因为这表明它们不是独立的。
-
感谢您的意见。我知道如果我们可以以随机顺序运行所有单元测试会更好。但有时在特殊情况下,我只需要按特定顺序运行测试即可。
-
如果你有实际的上下文,人们可能会想出一个适当的解决方案,而不是解决 XY 问题。
-
考虑有十个测试用例,然后我添加一个测试,十个测试中的两个只有在新测试可以通过时才运行。我想到了有条件的跳过,但我只需要考虑测试顺序。我的领导认为将测试命名为
test_01_xxx、test_02_xxx是个坏主意。所以我只需要一个方法来自定义测试顺序。 -
请原谅我对单元测试知识的贫乏,我更擅长
JUnit测试,刚接触unittest。
标签: unit-testing python-unittest