Jest运行Mock文件报错「测试套件必须包含至少一个测试」如何解决?
问题原因
Jest默认会将__tests__目录下所有.js后缀的文件识别为测试用例文件,你当前将静态资源mock文件存放在__tests__/__mocks__路径下,Jest扫描到这两个文件中没有以test/it声明的测试用例,就会抛出「测试套件必须包含至少一个测试」的报错。
解决方案
你可以选择以下任意一种方式解决:
方案1:调整mock文件存放路径
不要将通用mock文件放在__tests__目录下,在项目根目录新建jest-mocks文件夹,把fileMock.js、styleMock.js移动到该文件夹下,再修改Jest配置中的moduleNameMapper路径即可:"moduleNameMapper": { "^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/jest-mocks/fileMock.js", "^.+\\.(css|less)$": "<rootDir>/jest-mocks/styleMock.js" }方案2:配置Jest忽略mock文件
如果不想调整文件路径,可以在Jest配置中添加testPathIgnorePatterns规则,排除__mocks__目录下的文件:"testPathIgnorePatterns": [ "<rootDir>/__tests__/__mocks__/" ]你也可以调整
testMatch规则,让Jest仅识别带.test.js/.spec.js后缀的文件为测试用例:"testMatch": [ "**/__tests__/**/*.test.js", "**/?(*.)+(spec|test).[tj]s?(x)" ]
配置修改完成后重新运行Jest即可恢复正常,原有静态资源的mock功能不会受影响。
内容的提问来源于stack exchange,提问作者Bruce
相关产品推荐
相关产品推荐

