【发布时间】:2015-03-29 13:45:14
【问题描述】:
是否可以将命令行参数传递给 Django 的 manage.py 脚本,专门用于单元测试?即,如果我做类似的事情
manage.py test myapp -a do_this
我可以在单元测试的setUp函数中接收do_this的值吗?
P.S. @Martin 询问在测试中使用命令行参数的理由:
一些广泛的测试需要花费大量时间,并且不需要在每次提交之前运行。我想让它们成为可选的。
我的测试用例打印的偶尔调试消息应该是可选的
有时我只是想让测试变得疯狂并尝试更多的数据排列。
使用命令行选项,以上所有内容都会非常方便。偶尔测试可能会更广泛或更冗长,否则会很快。
【问题讨论】:
-
不管是或否,将参数添加到单元测试本身不是更有意义吗?这确实是单元测试的主要用例之一 - 检查不同的边缘情况等。如果您为每种情况定义不同的测试函数,您将能够像
manage.py test myapp.mytestcase一样单独调用它们 -
@Martin Fair 点。我已经在答案中阐述了我的想法(P.S.)
-
好的,那么我将创建
testBasic、testCrazy等函数,并在提交时运行您需要的任何测试。我完全同意在每次提交时运行一个大项目的整个测试套件可能会很烦人 - 这就是为什么你应该为提交创建一个新测试或者只选择与提交相关的测试。 -
@user4150760 - “manage.py test myapp.mytestcase” 对我来说还不够。有时我想在特定的客户端 ID 上进行测试。然后呢?
标签: django django-testing django-manage.py