我具有以下与赛普拉斯一起使用的目录结构:
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
文件夹中运行所有测试(其中有许多规范文件)..并能够使用CLI使用--project
命令通过此测试
当前,如果我只运行`--run``而没有任何其他参数的所有spec文件,则从所有文件夹开始运行,这是不希望的,因为有多个应用程序“项目”(smhw-qa,smhw-产品等)。这将允许我仅根据需要从单个文件夹运行规范文件。
我也知道使用--run
命令来“运行”特定的文件夹,但是我想使用“项目”来组织这些测试,以便以后识别它们更容易。
我看了看一下显示--project
命令用法的文档,但是我需要帮助了解我还需要设置什么才能使此工作生效。因此,我指的是package.json
文件。
到目前为止我尝试过的事情
我尝试遵循此处提供的用于测试“嵌套文件夹”的示例:
https://github.com/cypress-io/cypress-test-nested-projects
package.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
文件应该位于其他位置吗?
我希望能够将“应用程序”中的每个文件夹设置为项目,然后使用cypress run --project
命令运行这些项目。
这也将使我在连接CI时更容易运行特定的测试文件夹,从而在我选择时仅运行特定的项目(及其规范文件)。
答案 0 :(得分:0)
我认为您正在寻找--spec path/to/folder/*.js
您可以在文件夹甚至文件夹的所有子文件夹中运行所有测试,
ex / npx cypress run --spec cypresss/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
答案 1 :(得分:0)
在我的例子中,我有一个包含多个项目的角度工作区,我移动了这个子项目中的 cypress 文件夹和 cypress.json 文件,例如 ./projects/app1。
然后在配置文件中添加"integrationFolder":"e2e/cypress/integration",指定测试目录。
将这些脚本添加到 package.json
cypress open --project ./projects/app1
cypress run --project ./projects/app1
并且只执行或打开来自 e2e/cypress/integration 目录的测试。
希望这会有所帮助。