嗨,我实际上需要在一些jest文件中将导出的文件从一个应用程序(公用)导入到另一个应用程序(登录),但它没有被jest检测到。
Jest测试文件:
import { auth as ServiceAuth } from "@dfs/standard"
import { ContextAlert } from '@dfs/standard';
describe("login page", () => {
it("test case 1", () => {
const ContextAlert = useContext(ContextAlert );
expect(ContextAlert).toBeTruthy()
})
})
错误消息:
失败src/Components/LoginPage.test.js ●测试套件运行失败
Cannot find module '@dfs/standard' from 'LoginPage.test.js'
> 1 | import { auth as ServiceAuth } from "@dfs/standard"
| ^
2 | import { ContextAlert } from '@dfs/standard';
3 |
4 | describe("login page", () => {
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:299:11)
at Object.<anonymous> (src/Components/LoginPage.test.js:1:1)
jest.config.js
module.exports = {
transform: {
"^.+\\.(j|t)sx?$": "babel-jest"
},
moduleNameMapper: {
"\\.(css)$": "identity-obj-proxy",
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "identity-
obj-proxy",
}
};
但是这个文件是用相同的语法导入到组件文件中的。我该如何在jest测试文件中导入这个文件呢?
1条答案
按热度按时间tzdcorbm1#
Jest是一个与浏览器非常不同的环境,解析模块也是不同的。在Jest中加载的代码没有捆绑,也没有通过Webpack处理,因此外部代码在运行时不会被解析。
若要启用具有跨微前端汇入的公寓测试,您可以选择下列选项:
moduleNameMapper
配置模拟共享依赖项__mocks__
文件中本地模拟共享依赖项您选择的选项取决于组织的需要。
另请参阅:https://github.com/single-spa/single-spa.js.org/issues/389