我有下面的目录结构来使用Cypress:
cypress-automation
cypress
fixtures
integration
apps
pulse
smhw-prod
smhw-qa
folder-a
sample-spec.js
examples
plugins
screenshots
support
videos
node_modules
cypress.json // this is where the file currently is
package-lock.json
package.json
期望
我想做的是运行smhw-qa
文件夹中的所有测试(其中有许多spec文件)。并能够使用CLI使用--project
命令传递此信息。
目前,如果我只运行--run``而不使用任何其他参数,所有文件夹中的所有规范文件都将开始运行,这是不可取的,因为在此结构中有多个应用程序“项目”(smhw-qa,smhw-prod等)。这将允许我只从一个文件夹中运行所需的等级库文件。 我也知道使用
--run命令来“运行”一个特定的文件夹,但是我想使用“项目”来组织这些测试,这样以后更容易识别它们。 我已经看过了文档,其中显示了
--project命令的使用,但是我需要帮助理解我还需要设置什么才能使此工作。这里,我指的是
package.json`文件。
我一直在努力
我试着从这里遵循为测试“嵌套文件夹”提供的示例:https://github.com/cypress-io/cypress-test-nested-projectspackage.json
:添加了以下脚本:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"smhw-qa": "cypress run --project ./cypress/integration/apps/smhw-qa"
},
当我通过终端运行这个命令时,如下所示:
➜ cypress-automation npx cypress run --project ./cypress/integration/apps/smhw-qa
我得到一个错误:
Can't run because no spec files were found.
We searched for any files inside of this folder:
/Users/jaswindersingh/Documents/cypress-automation/cypress/integration/apps/smhw-qa/cypress/integration
我错过了什么吗?我的cypress.json
文件应该位于其他地方吗?
我希望能够将“apps”中的每个文件夹设置为项目,然后能够使用cypress run --project
命令运行这些项目。
当我连接CI时,这也将使运行特定的测试文件夹变得更容易,以便只有特定的项目(及其spec文件)在我选择时运行。
4条答案
按热度按时间imzjd6km1#
我想你在找
--spec path/to/folder/*.js
您可以运行文件夹中的所有测试,甚至可以运行文件夹的所有子文件夹,
ex/
npx cypress run --spec cypress/integration/subsetA/**/*-spec.js
将运行cypress/integration中“subsetA”文件夹下所有文件夹中的所有.js规范。
在你的例子中:
npx cypress run --spec cypress/integration/apps/smhw-qa/**/*-spec.js
应该可以。https://docs.cypress.io/guides/guides/command-line.html#How-to-run-commands
ctrmrzij2#
在我的例子中,我有一个包含多个项目的angular workspace,我将cypress文件夹和cypress.json文件移动到了这个子项目中,例如
./projects/app1
。然后在配置文件中添加
"integrationFolder": "e2e/cypress/integration",
以指定tests目录。将这些脚本添加到package.json
cypress open --project ./projects/app1
cypress run --project ./projects/app1
并且只执行或打开
e2e/cypress/integration
目录中的测试。n3ipq98p3#
我有一个问题,运行所有的测试文件从一个目录与
Cypress只运行了第一个测试文件,然后就停止了。
我已经尝试了所有的组合 .js,-spec.js等,问题是--no-exit标志。删除-没有出口解决了我的问题。
另外,我注意到根据cypress文档www.example.com,路径应该用引号括起来https://docs.cypress.io/guides/guides/command-line#How-to-run-commands
qoefvg9y4#
如果需要从不同的文件夹或同时从多个文件夹运行等级库,请使用下一个命令:
您可以指定spec子文件夹或spec名称,而不是**