我正在为我的python django项目使用coverage模块。现在我想用cron job邮寄我的报道。为此,我为运行单元测试用例创建脚本并在附件中发送报告。如果我手动运行该文件,这工作正常。但是使用cron作业我在登录日志文件时遇到了这个错误。
sh: 1: coverage: not found
我的运行单元测试和发送邮件的文件: 的 coverage_report.py
def run_test():
print 'before running'
try:
print commands.getoutput("cd project_path && coverage run --source='.' manage.py test")
except:
print "Error in run_test"
print 'done running'
def generate_report():
try:
commands.getoutput('cd /tmp/ && rm report.txt')
commands.getoutput('cd project_path && coverage report */*.py >> /tmp/report.txt')
except:
print "Error in generate report"
def send_mail():
send_email('Coverage Report', 'This is coverage report for this week ', ['gauravnagpal2002@gmail.com'],'plain',['/tmp/report.txt'])
def main():
run_test()
generate_report()
send_mail()
print "Mail send successfully."
if __name__ == '__main__':
main()
如果我手动运行此文件它工作正常并以txt格式发送报告。但如果我使用cron job运行此文件,则发送空白文件。 我的玉米作业语法:
21 6 * * * python <project_path>/scripts/coverage_report.py >> /tmp/coverage_report.log
运行此文件后生成的文件 /tmp/coverage_report.log
before running
sh: 1: coverage: not found
done running
Mail send successfully.
请帮助。
答案 0 :(得分:1)
PATH
问题。
coverage
不在你的cron工作路径中。
您的shell脚本应包含:
export PATH=...