linux - 不运行 Cypress 和 linux cron

标签 linux cron cypress

希望得到您的帮助。我在 Linux 中安装了 Cypress 并且测试成功地在命令 cypress run --record --key *******

上手动运行

但是,当我将命令写入 Cron 时,测试没有运行。控制台中没有错误。 Cron 正在工作。其他命令(例如日期和时间输出)工作正常。

我这样做了:

  1. 使用以下内容创建了一个bash-script.sh

#!/bin/bash
cd /home/ubuntu/project-name/cypress
/home/ubuntu/project-name/cypress/node_modules/.bin/cypress run --record --key *****************

  1. 将 bash 脚本文件放入文件夹/home/ubuntu/。现在这是脚本/home/ubuntu/bash-script.sh

    的路径
  2. 通过命令 'crontab -l ' 安排以下命令 */5 * * * */home/ubuntu/bash-script.sh >>/home/ubuntu/bash-script-log .log

但是预定的命令没有执行。日志是空的。你能告诉我我做错了什么吗?

最佳答案

试着把PATH变量写在bash脚本的开头。只需执行 echo $PATH;在您的终端/bash 中复制结果以创建 PATH 变量,如下所示。

让我们首先确保 cypress 在 bash 中工作,然后我们将在 crontab 中触发它。

#!/bin/bash
PATH=/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

## Set your cypress folder
yourfullpathtocypressfolder=/home/ubuntu/project-name/cypress;

## Check that we can echo cypress version
$yourfullpathtocypressfolder/node_modules/.bin/cypress -v >> Iamalive.log
  

设置变量 yourfullpathtocypressfolder 后将脚本保存为 myscript.sh。尝试在您的终端中将此脚本作为 bash myscript.sh 运行。

至于使用crontab记录下你的项目的完整代码如下。 确保您更新了 cypress.json 中的项目 ID!

您还可以查看此要点 https://gist.github.com/senniksoft/0e062165fb9121be8d8a0fca4038fbc1

#!/bin/bash
        PATH=/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
        
## Set your cypress folder
yourfullpathtocypressfolder=/home/ubuntu/project-name/cypress;
    
## Set your project key
yourprojectkey=xxxxxxxx-c69f-4c44-81c9-xxxxxxxxxxxxx;
    
cd $yourfullpathtocypressfolder;
        
## Example Code to record
./node_modules/.bin/cypress run --record --key $yourprojectkey --spec "cypress/integration/examples/actions.spec.js" >> RecordLog.log

然后赋予适当的权限,以便 crontab 可以执行脚本。

chmod +x/home/ubuntu/myscript.sh;

按如下方式将此脚本添加到crontab

*/5 * * * * bash /home/ubuntu/myscript.sh

运行此脚本后日志中的示例输出。

====================================================================================================

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:    5.1.0                                                                              │
  │ Browser:    Electron 83 (headless)                                                             │
  │ Specs:      1 found (examples/actions.spec.js)                                                 │
  │ Searched:   cypress/integration/examples/actions.spec.js                                       │
  │ Params:     Tag: false, Group: false, Parallel: false                                          │
  │ Run URL:    https://dashboard.cypress.io/projects/2bn65e/runs/2                                │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  examples/actions.spec.js                                                        (1 of 1)
  Estimated: 22 seconds


  Actions
    ✓ .type() - type into a DOM element (7441ms)
    ✓ .focus() - focus on a DOM element (469ms)
    ✓ .blur() - blur off a DOM element (741ms)
    ✓ .clear() - clears an input or textarea element (790ms)
    ✓ .submit() - submit a form (670ms)
    ✓ .click() - click on a DOM element (2705ms)
    ✓ .dblclick() - double click on a DOM element (476ms)
    ✓ .rightclick() - right click on a DOM element (360ms)
    ✓ .check() - check a checkbox or radio element (1114ms)
    ✓ .uncheck() - uncheck a checkbox element (1160ms)
    ✓ .select() - select an option in a <select> element (1068ms)
    ✓ .scrollIntoView() - scroll an element into view (798ms)
    ✓ .trigger() - trigger an event on a DOM element (383ms)
    ✓ cy.scrollTo() - scroll the window or element to a position (2321ms)


  14 passing (24s)

关于linux - 不运行 Cypress 和 linux cron,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63882686/

相关文章:

linux - 批处理模式 SSH 给出错误 "TERM environment variable not set"

mysql - mysql 的 crontab 行为差异

javascript - 在 cypress.env.json 中定义变量

Cypress 断言 A 或 B

arrays - 使用 Cypress 存储元素数组

c - 如何完全而不是部分地将特定数量的字节写入/发送到套接字?

ruby-on-rails - 限制 Imagemagick 使用的空间和内存

linux - PostgreSQL 10 上的 initdb 错误 - RHEL 6

linux - 如何正确等待 yum lock 被释放?

docker - 通过Dockerfile创建Cron作业