signal自定义 - 如何测试自定义django-admin命令




django自定义序列化 (3)

我创建了自定义django-admin命令

但是,我不知道如何在标准的django测试中测试它


你可以在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.")

如果你正在使用一些覆盖工具,最好从代码中调用它:

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.

我同意Daniel的观点,实际的命令脚本应该尽可能少,但你也可以使用os.popen4在Django单元测试中直接测试它。

在您的单元测试中,您可以拥有类似的命令

fin, fout = os.popen4('python manage.py yourcommand')
result = fout.read()

然后,您可以分析结果的内容以测试您的Django命令是否成功。





custom-action