dix*_*xon 50 testing django custom-action django-admin
但是,我不知道如何在标准的django测试中测试它
Jor*_*ona 95
如果你正在使用一些覆盖工具,最好从代码中调用它:
from django.core.management import call_command
from django.test import TestCase
class CommandsTestCase(TestCase):
def test_mycommand(self):
" Test my custom command."
args = []
opts = {}
call_command('mycommand', *args, **opts)
# Some Asserts.
Run Code Online (Sandbox Code Playgroud)
Dan*_*man 20
您应该尽可能地使您的实际命令脚本,以便它只是在其他地方调用一个函数.然后可以通过单元测试或doctests正常测试该功能.
mad*_*rdi 12
你可以在github.com的例子中 看到这里看到的
def test_command_style(self):
out = StringIO()
management.call_command('dance', style='Jive', stdout=out)
self.assertEquals(out.getvalue(),
"I don't feel like dancing Jive.")
Run Code Online (Sandbox Code Playgroud)
小智 7
添加到此处已发布的内容。如果你的 django-admin 命令传递一个文件作为参数,你可以这样做:
from django.test import TestCase
from django.core.management import call_command
from io import StringIO
import os
class CommandTestCase(TestCase):
def test_command_import(self):
out = StringIO()
call_command(
'my_command', os.path.join('path/to/file', 'my_file.txt'),
stdout=out
)
self.assertIn(
'Expected Value',
out.getvalue()
)
Run Code Online (Sandbox Code Playgroud)
当你的 django-command 以如下方式使用时,这会起作用:
$ python manage.py my_command my_file.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15983 次 |
| 最近记录: |