我尝试使用Cypress w/ Typescript,但是Cypress找不到我为它创建的tsconfig.json
文件。我还有一个自定义的目录结构(因为我讨厌根目录下有一堆配置文件,所以我把它们放在一个config目录下)。
项目目录结构
/
├── package.json
├── configs/
│ ├── cypress.json
├── src/
│ ├── cypress/
│ │ ├── tsconfig.json
Cypress打开命令
// package.json
"scripts": {
"cypress:open": "cypress open --config-file configs/cypress.json"
},
在上面的脚本中,--config-file
标志告诉Cypress cypress.json
配置文件的位置,这很棒,因为我可以把这个文件放在任何我想放的地方,但是,现在我需要指示Cypress在哪里找到它的tsconfig.json
文件。
/configs/cypress.json(告诉Cypress cypress/
目录的位置)
{
"fixturesFolder": "src/cypress/fixtures",
"integrationFolder": "src/cypress/integration",
"pluginsFile": "src/cypress/plugins/index.js",
"screenshotsFolder": "src/cypress/screenshots",
"videosFolder": "src/cypress/videos",
"supportFile": "src/cypress/support/index.js"
}
// is there no option to set tsconfig.json path????
官方文档说把它放在cypress/
目录下,根据文档,它应该在/cypress/tsconfig.json
目录下,但是在我的项目中,它在/src/cypress/tsconfig.json
目录下。
以下是我尝试放置tsconfig.json
文件的位置:
/src/cypress/tsconfig.json //Error: "Couldn't find tsconfig.json. tsconfig-paths will be skipped"
/src/tsconfig.json //Error: "Couldn't find tsconfig.json. tsconfig-paths will be skipped"
/cypress/tsconfig.json //Error: "Couldn't find tsconfig.json. tsconfig-paths will be skipped"
/tsconfig.json // Works!! But not where I want this file to live...
我如何指示Cypress在哪里查找我想要它使用的tsconf.json文件?cypress.json
配置文件中是否有一个选项,或者我可以使用的CLI标志?
我不想在我的项目根目录下放置各种各样的配置文件,实际上我的项目和测试套件有不同的tsconfig文件,最好显式地设置文件路径。
5条答案
按热度按时间2ic8powd1#
虽然这不是你想听到的答案,但是
tsconfig.json
将一个目录标记为一个typescript项目的根目录,就像package.json
将一个目录标记为node.js项目的根目录一样,这些文件有助于IDE之类的工具理解你的项目。在我看来,你应该只考虑移动
tsconfig.json
时,你开始把你的package.json
在一些其他的文件夹以及。另请参阅:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
czq61nw12#
请参阅Cypress Real World App和a payment application to demonstrate real-world usage of Cypress testing methods, patterns, and workflows。
它是用create-react-app和TypeScript构建的,用于Cypress的tsconfig.json位于
cypress
目录中。您可能需要配置一个root tsconfig.json,并像在RWA中那样从cypress tsconfig.json扩展它。
wqnecbli3#
尝试以下命令是否有效:
o2gm4chl4#
这可以在没有根级别
tsconfig
的情况下实现。我们的想法是在运行open命令之前可以将cd
放入我们的test文件夹:使用下面的文件结构,您的
test
命令将类似于:只需确保更新
cypress.json
中的支持路径等,它们现在将相对于src/cypress
mrwjdhj35#
您的
cypress
文件夹应位于包含src
文件夹的同一目录中,而不是位于src
文件夹中。此外,您的cypress.config.ts
文件应位于同一根文件夹中。然后,您应该有一个
./cypress/tsconfig.json
,如下所示: