使用crontab调度unittest python文件;如何在每个单元测试之间暂停5秒?

时间:2017-02-20 08:02:37

标签: python selenium crontab python-unittest

我正在使用crontab安排一些unittest python文件。

crontab -e:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * cd /Users/HeyJude/ntry_selenium && /Users/HeyJude/ntry_selenium/ladderPattern.sh.command

ladderPattern.sh.command:     #!/ bin / sh的

sleep 10
python /Users/HeyJude/ntry_selenium/result.py  &
sleep 1
python /Users/HeyJude/ntry_selenium/predict.py &
sleep 1
python /Users/HeyJude/ntry_selenium/lds24.py &

这3个文件(result.py,predict.py,lds24.py)都是python unittest文件。它们都像是:

import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class PythonOrgSearch(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()
        # ... lines of code
    def test_search_in_python_org(self):
        driver = self.driver
        driver.get("http://www.python.org")
        # ... lines of code
    def tearDown(self):
        self.driver.close()
        # ... lines of code
if __name__ == "__main__":
    unittest.main()

我想在result.py完成后运行predict.py,但也许因为这3个文件是unittest文件,所有3个文件几乎同时启动! 也许终端假设每个文件都完成了,当单元测试类里面的测试方法启动时!但我不确定为什么会这样。

我的问题是,我想确保下一个只在前一个结束时启动。我还希望在python文件之间放置5秒的暂停。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

  1. 从命令行末尾删除&。这是导致脚本立即继续执行下一个命令的原因,而不是等待当前命令完成。
  2. 如果您希望在命令间休息5秒,请将sleep 1更改为sleep 5
  3. 应该是它!