从 Django unittest 调用脚本

call script from django unittest

我正在尝试 运行 来自 django 单元测试的脚本,但未能成功。

我想调用的脚本可以从命令行 运行 python -m webapp.lib.cron.my_cron

我试过:

from subprocess import call
call("python -m webapp.lib.cron.my_cron")

并收到以下错误:

FileNotFoundError: [Errno 2] No such file or directory: 'python -m webapp.lib.cron.my_cron'

如何在 Django 单元测试中 运行 这个脚本?

您应该将参数作为列表而不是字符串传递。

import subprocess
subprocess.call(["python",  "-m", "webapp.lib.cron.my_cron"])

使用 Popen,因为 subprocess.Popen 比 subprocess.call 更通用。

import subprocess
subprocess.Popen(["python",  "-m", "webapp.lib.cron.my_cron"])