我目前正在将 MUI v5 Pro 组件集成到我的 React 库中,然后将这些库组件导入到我的主机应用程序中。我已在库和主机应用程序的
.env
文件中设置了 MUI 许可证密钥,并且我正在导入必要的组件,如下所示:
import { LicenseInfo } from "@mui/x-license-pro";
LicenseInfo.setLicenseKey(import.meta.env.VITE_REACT_APP__MUI_KEY || "");
但是,当我执行 Jest 和 React 库测试时,我遇到了“缺少许可证密钥”问题,即使在 .env 文件中正确设置了密钥。
console.error
*************************************************************
MUI: Missing license key.
The license key is missing. You might not be allowed to use `@mui/x-date-pickers-pro` which is part of MUI X Pro.
To solve the issue, you can check the free trial conditions: https://mui.com/r/x-license-trial.
If you are eligible no actions are required. If you are not eligible to the free trial, you need to purchase a license https://mui.com/r/x-get-license or stop using the software immediately.
*************************************************************
让事情变得复杂的是,并非我们团队中的每个开发人员都可以访问此许可证密钥——主要是前端开发人员。因此,我想确保测试在每台本地计算机上通过,无论开发人员是否设置了许可证密钥。
有没有办法仅在 Jest 和 React 库测试期间模拟或绕过许可证检查,确保它们无需密钥即可执行?
如果您有笑话设置文件,您可以模拟 MUI 许可证返回。这应该可以消除使用 jest 测试时显示的控制台错误:
jest.mock('@mui/x-license-pro', () => ({
...jest.requireActual('@mui/x-license-pro'),
useLicenseVerifier: () => 'Valid',
Watermark: () => null,
})):
或者,如果您不需要在所有测试中模拟它,则在测试套件的
beforeAll(() => {})
中模拟它也可以工作