问题描述
我有两个赛普拉斯测试文件,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中添加其他脚本。
中也有注明使用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
,
您还可以使用以下命令来运行单个规范文件-
npx cypress run --spec "cypress/integration/SmokeTest/SmokeTest.spec.ts" --headless --browser chrome