【问题标题】:How to run 2 commands at once in Jenkins with codeception and PhantomJS?如何使用 codeception 和 PhantomJS 在 Jenkins 中一次运行 2 个命令?
【发布时间】:2015-01-20 08:17:08
【问题描述】:

我想创建一个 jenkins 作业来运行,我在 phantomjs 上使用 codeception 进行验收测试。

所以首先我需要启动 phantomjs 无头服务器

phantomjs --webdriver=4444

现在当它运行时,我会运行我的测试

php codecept.phar run acceptance

但是当我定义我的詹金斯工作时, 我为这些命令添加了一个 shell 脚本

但是当我运行第一个命令时:“phantomjs --webdriver=4444” 所以bash在运行命令时被卡住了......所以我无法运行下一个命令。

【问题讨论】:

    标签: bash jenkins phantomjs codeception headless-browser


    【解决方案1】:

    在后台运行phantomjs服务器,否则它不会结束(因此你的php命令永远不会到达):

    phantomjs --webdriver=4444 &
    php codecept.phar run acceptance
    

    之后要结束 phantomjs,你可以使用$!,一个特殊的变量,它包含在后台运行的最后一个进程的 pid。

    kill $!
    

    【讨论】:

    • 这样安全吗?如果其他东西在其他服务的后台运行,它不会杀死任何其他东西吗?
    • $! 包含在当前 shell 中放入后台的最新进程的 pid。它不会影响来自其他 shell 的任何进程(shell 脚本在自己的 shell 中运行)。您可以通过在脚本末尾放置jobs > jobs.txt 之类的命令而不是kill 命令来验证不会受到任何影响。这将输出当前 shell 中所有后台进程的列表 - 仅应列出 phantomjs 命令。
    猜你喜欢
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    相关资源
    最近更新 更多