即使使用--spec参数,赛普拉斯也会运行所有测试文件

问题描述

我有两个赛普拉斯测试文件,SmokeTest.spec.ts和ProfileTest.spec.ts。我想一次以无头模式运行一个文件。我使用以下命令:npm run cy:run --headless --spec cypress/integration/SmokeTest/SmokeTest.spec.ts

即使我使用--spec参数,两个测试文件都以无头模式运行。

我还尝试过在测试文件路径周围添加单引号,例如:--spec 'cypress/integration/SmokeTest/SmokeTest.spec.ts',结果相同

为什么要同时运行两个测试?

解决方法

cy:run是package.json中的一个脚本条目,它调用cypress run

{
  ...
  "scripts": {
    "cy:run": "cypress run"

要将其他args传递给脚本,必须在它们之前加上--(请注意,双破折号前后都有空格)。

请参见npm-run-script

特殊选项-getopt使用它来分隔选项的结尾。 npm会将-之后的所有参数直接传递给您的脚本

您不需要在package.json中添加其他脚本。

Cypress docs

中也有注明

使用npm run调用命令时,您需要使用-字符串传递命令的参数。例如,如果您在package.json

中定义了以下命令

{ “脚本”:{ “ cy:run”:“柏树奔跑” } }

...并且要从单个规格文件运行测试并将结果记录在仪表板上,命令应为:

npm run cy:run---record --spec“ cypress / integration / my-spec.js”

您的特定命令行为

npm run cy:run -- --headless --spec cypress/integration/SmokeTest/SmokeTest.spec.ts 
,

能否请您将以下脚本添加到package.json文件中。

 "scripts": {
    "cy:smoketest-only": "cypress run --headless --spec cypress/integration/SmokeTest/SmokeTest.spec.ts --browser electron"
  }

或使用全局模式:

 "scripts": {
        "cy:smoketest-only": "cypress run --headless --spec cypress/integration/SmokeTest/**/* --browser electron"
      }

,然后从项目根文件夹的命令提示符处运行以下命令

npm run cy:smoketest-only

enter image description here

,

您还可以使用以下命令来运行单个规范文件-

npx cypress run --spec "cypress/integration/SmokeTest/SmokeTest.spec.ts" --headless --browser chrome

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...