Wog*_*220 6 typescript jestjs bitbucket-pipelines ts-jest
在 bitbucket 管道中使用 Jest,它找不到测试,因此失败并出现以下错误:
\n+ npx jest\nNo tests found, exiting with code 1\nRun with `--passWithNoTests` to exit with code 0\nIn /opt/atlassian/pipelines/agent/build\n 12 files checked.\n testMatch: **/__tests__/**/*.[jt]s?(x), **/?(*.)+(spec|test).[tj]s?(x) - 2 matches\n testPathIgnorePatterns: /node_modules/, /build/ - 0 matches\n testRegex: - 0 matches\nPattern: - 0 matches\n
Run Code Online (Sandbox Code Playgroud)\n在本地,我的测试运行良好。
\n项目结构:
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 coverage\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 js\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 account\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 account.ts\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 account.test.ts\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.ts\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 index.test.ts\n
Run Code Online (Sandbox Code Playgroud)\n笑话配置.js
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 coverage\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 js\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 account\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 account.ts\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 account.test.ts\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.ts\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 index.test.ts\n
Run Code Online (Sandbox Code Playgroud)\n使用以下 npm 脚本启动测试
\n"test": "jest --coverage",\n
Run Code Online (Sandbox Code Playgroud)\nJest 不运行它找到的测试是否正常testMatch
?
testMatch
但testRegex
没有成功npx jest ./src
)好吧,问题是 bitbucket 在名为\n \n的文件夹中运行管道,/opt/atlassian/pipelines/agent/build
然后我的完整文件夹结构是:
/opt/atlassian/pipelines/agent/build\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 coverage\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 js\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 account\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 account.ts\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 account.test.ts\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.ts\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 index.test.ts\n
Run Code Online (Sandbox Code Playgroud)\n由于build
中的testPathIgnorePatterns
,所有文件夹都被忽略。
\n请参阅有关此的 Jest 文档:https ://jestjs.io/docs/configuration#testpathignorepatterns-arraystring
\n\n这些模式字符串与完整路径匹配。使用字符串标记包含项目根目录的路径,以防止它意外忽略可能具有不同根目录的不同环境中的所有文件。示例:[“/build/”、“/node_modules/”]。
\n
解决方案是删除build
并 testPathIgnorePatterns
稍微更改 testMatch (在我的例子中是 testRegex):
\ntestRegex: ".*/src/.*\\\\.test\\\\.(t|j)sx?$"
或者
\n添加<rootDir>
每个testPathIgnorePatterns
元素
testPathIgnorePatterns: ["<rootDir>/node_modules/", "<rootDir>/build/"],\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
2335 次 |
最近记录: |