当我在GitLab CI环境中运行npm run cypress:run
时,我得到错误:
您的配置文件无效://WebApp/cypress.config.ts它在需要时抛出了一个错误,请检查下面的堆栈跟踪:类型错误[ERR_UNKNOWN_FILE_EXTENSION]:未知的文件扩展名;。ts";对于//WebApp/cypress.config.ts
test:cypress:
image:
name: cypress/included:10.3.1-typescript
entrypoint: ['']
stage: test
script:
- yarn install --frozen-lockfile
- cd WebApp
- npm run cypress:run
rules:
- *branch
如果我从WebApp
文件夹(其中cypress.config.ts
在根目录中(本地运行npm run cypress:run
,我没有问题。当我做npx cypress:run
时也没有问题
然而,如果我在本地从父文件夹运行npx cypress run --config-file WebApp/cypress.config.ts
,我会得到错误:
未知的文件扩展名"。ts";
有什么想法吗?Cypress在本地工作,但在CI上配置文件不正确?
我用更多信息更新了这个github问题。
这是因为你的机器上全局安装了typescript,所以它在本地可以正常工作,但在CI中不行。
本质上,typescript有在运行cyprus命令的文件夹中,以便正确检测typescript。
我选择了:
script:
- npm install --global serve
- serve ./build --listen 3000 &
- rm package*
- npm install @percy/cypress typescript
- npm install --global @percy/cli
- percy exec --verbose -- cypress run
只是安装了运行e2e测试的最低要求/build是另一次运行中的工件,如果您以前没有使用过percy,那么它真的很棒。
这在今天看来仍然是LTS 10.10.0 的一个问题
更改新安装的cypress.config.ts->塞浦路斯配置.js和使用一样需要证明是成功的。
module.exports = require('cypress').defineConfig({ component: {
devServer: {
framework: "create-react-app",
bundler: "webpack",
},
},
});
我来晚了,我遇到了类似的问题。删除传递视频的del
包是我的罪魁祸首。在CI环境中,它要求单独安装del
包,但在我的cypress.config.ts
中,我可以直接导入第三方提供的del包。
我想在我的案例中安装确切的del
软件包,这解决了问题。德尔包有它的局限性,林拉夫解决了我的问题。https://www.npmjs.com/package/rimraf
看起来是关于版本的。这可能是高效的GitHub
我已经尝试了GitHub问题中建议的所有不同方法user18025789已链接,但没有任何帮助。然后,我尝试将配置文件从.ts
切换到cypress.config.js
,它开始工作(语法也需要更新为JavaScript(。我不知道为什么。
我遇到这个问题是因为我的Cypress容器中没有安装Typescript。当ts节点不能访问typescript时,它的require行为就像原生的";"需要";,这就是你看到错误的原因。
我对您的具体设置了解不多,无法推荐解决方案,但对我来说,我能够运行npm i
,并在运行测试之前将卷装载到柏树容器中。另一种选择可能是创建一个新的Dockerfile,以使用构建中包含的typescript扩展基本Cypress映像。
如果在monoreo上工作,并且只将要测试的app/package文件夹装载到cypry-docker映像中,则并非所有依赖项都在此目录中可用。
为了修复这种挂载,整个工作区都完成了以下工作:
cypress:
image: cypress/included:10.11.0
# …
working_dir: /workspace/app
volumes:
- ..:/workspace
我开始面临这个问题,突然间,
我的解决方案是rm -rf node_modules package-lock.json
npm i
当我运行npx cypress open
时,我已经有了cypress.config.ts文件,所以cypress测试运行程序在运行