【问题标题】:Can Pytest run at a pre-scheduled time?Pytest 可以在预定时间运行吗?
【发布时间】:2019-04-16 21:53:29
【问题描述】:

我正在使用 pytest 使用 python3 脚本运行我的测试,如下所示:

pytest -s test_file.py | tee -a myoutput.log

它有效。现在我想在每天的特定时间运行它,我从 linux 控制台尝试了“crontab -e”但失败了。我的意思是“myoutput.log”文件中没有添加日志。有人可以帮忙吗?谢谢!

42 00 * * * /usr/bin/pytest pytest -s /data/smc/test_file.py | tee -a myoutput.log

【问题讨论】:

  • 如果您可以在“但失败”位中添加更多细节,那将大大有助于我们帮助您:-)
  • /usr/bin/pytest pytest 部分是什么?我几乎可以肯定这是错误来源。
  • 另外,如果一个命令的stdout是空的,bash中的常见习惯用法是将stderr输出重定向到stdout(command 2>&1),所以如果一个命令由于某种原因失败,你可以查看日志中的错误。如果在使用两个可执行文件修复问题后仍然出现错误,请尝试此操作。
  • /usr/bin/pytest 这是环境,“pytest -s”是运行文件的命令。当我从 python 控制台而不是 crontab 运行命令时,它可以正常工作。 .
  • /usr/bin/pytest 看起来像pytest 可执行文件的路径。 /usr/bin/pytest pytest 错误,省略两者之一。

标签: python-3.x scheduled-tasks pytest scheduler


【解决方案1】:

我认为可以通过使用 cron 输出来完成。例如:

42 00 * * * /usr/bin/pytest pytest -s /data/smc/test_file.py >> /Your-log-path.log 2>&1

【讨论】:

  • 42 00 * * * /usr/local/bin/pytest /data/smc/test_file.py >> /Your-log-path.log 2>&1 现在可以了。我的意思是我得到的 pytest 输出是通过/失败的结果,但是我用 print 命令丢失了输出,而我可以用“pytest -s”得到。请问有什么线索吗?
  • 终于成功了! 42 00 * * * /usr/local/bin/pytest /data/smc/test_file.py -s >> /Your-log-path.log 2>&1
猜你喜欢
  • 2013-09-20
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 2018-12-12
  • 2014-07-02
  • 1970-01-01
相关资源
最近更新 更多