如何使它在Python中的单元测试(使用unittest
)按它们在文件中指定的顺序运行?在Python中更改单元测试的顺序
回答
您可以通过设置自定义比较功能来更改默认排序行为。在unittest.py中,您可以找到默认情况下设置为内置函数cmp
的类变量unittest.TestLoader.sortTestMethodsUsing
。
例如,你可以这样做回复您的测试的执行顺序:
import unittest
unittest.TestLoader.sortTestMethodsUsing = lambda _, x, y: cmp(y, x)
聪明的命名。
class Test01_Run_Me_First(unittest.TestCase):
def test010_do_this(self):
assertTrue(True)
def test020_do_that(self):
etc.
是强制特定订单的一种方法。
也有测试运行者自己做 - 我认为py.test做到了。
使用proboscis库作为我mentioned already(请参阅下面简短描述那里)。
试过长鼻涕......值得一提的是,它劫持了测试加载过程,所以如果你使用鼻子,任何利用该鼻子插件(例如testid)将停止工作 – Clintm 2015-04-01 22:01:21
如上所述,通常测试用例中的测试应该以任何(即随机)顺序进行测试。但是,如果您确实想要在测试用例中排列测试,显然这不是微不足道的。 使用dir(MyTest)
从测试用例中检索测试(方法名称),该测试用例返回成员的排序列表。您可以使用巧妙的(?)hack来按行号排序方法。这将为一个测试用例工作:
if __name__ == "__main__":
loader = unittest.TestLoader()
ln = lambda f: getattr(MyTestCase, f).im_func.func_code.co_firstlineno
lncmp = lambda a, b: cmp(ln(a), ln(b))
loader.sortTestMethodsUsing = lncmp
unittest.main(testLoader=loader, verbosity=2)
我发现使用PyTest排序它插件提供的here的解决方案。
在CLI中尝试py.test YourModuleName.py -vv
,测试将按照它们出现在模块中的顺序运行。
我做了同样的事情,并为我工作得很好。
注意:您需要安装PyTest软件包并导入它。
- 1. Enum的单元测试顺序
- 2. Python中的单元测试
- 3. 更改元素的顺序
- 4. 单元测试在Python
- 5. 在单元测试中调用单独的Python程序
- 6. 单元测试保存更改失败
- 7. Python的单元测试ModuleImportFailure
- 8. 更改python中字符串的顺序
- 9. Python:在单元测试中处理sys.exit?
- 10. 在Django/Python中编写单元测试
- 11. 在python中参数化单元测试
- 12. 在python中有单元测试问题
- 13. 如何在angular2单元测试中更改选择框的值?
- 14. UIAutomation中的测试顺序
- 15. 在Python单元测试框架中修改全局变量
- 16. 单元测试GAE中的webapp.RequestHandler - Python
- 17. Python中的单元测试Corba
- 18. Python中的单元测试接口
- 19. Python中的模糊单元测试
- 20. Python中的单元测试套件
- 21. Python类和单元测试
- 22. Python单元测试细节
- 23. python单元测试方法
- 24. 气流Python单元测试?
- 25. 如何在Python中测试单元格坐标以更改数据?
- 26. 有没有办法在Flutter单元测试中测试AppLifecycleState更改?
- 27. 滚动更改表中动态单元格的顺序 - Swift 2.3
- 28. Python单元测试:在另一个模块中运行测试
- 29. 登录测试在Python中失败Flask单元测试
- 30. 如何更改iOS Kif测试的顺序?
它还排除了在多核上并行运行测试,或者跨群集分布测试。不是一个好主意。 – 2010-10-24 03:50:02
这将是重要的,如果1.您需要调试,并希望运行测试按顺序增加复杂性和2.如果一小部分的测试计算量很大,但有一些错误可以通过简单的测试发现,那么让他们下令会让你的工作更快,更快。 – 2012-10-22 11:31:40
听起来像集成测试,而不是单元测试。 – 2013-03-01 20:04:32