使用 jest 测试源代码和捆绑代码

Test both source code and bundled code with jest

假设我正在开发一个 NPM 模块。

我正在使用 Jest 进行测试,Webpack 将其与一般的 TypeScript 捆绑在一起。

当我测试源代码时,一切都很好,代码覆盖率也很好等等。但我认为这还不够。生成 Webpack 包后可能会出现某些问题,例如动态导入(使用变量而不是固定路径的要求)在包后会变得不正确,或者其他可能的情况。

我应该如何编写也涵盖捆绑包的测试?我是否应该针对源代码(以便获得良好的覆盖率)和包进行测试?通常我直接从特定文件导入东西(例如 /utils/myutil.ts),但使用捆绑包这是不可能的。如何处理?

我确实针对我的一些项目的捆绑包进行了测试。我为一些图书馆 (npm) 这样做。 为此,我创建了一些代码来导入包并针对此代码编写测试。在这种情况下不关心覆盖范围,我只是想验证我的库是否按预期执行。

在另一种情况下(不是图书馆),我正在针对捆绑包进行测试,但我 运行 更多 integration/e2e 测试。

除非您的代码的每个函数(或其中的大部分)都将被最终用户使用,否则不要太担心覆盖率。您应该按照使用的方式测试某些东西。 100% 的覆盖率很高兴看到,但当项目变大时实现它是非常不切实际的,而且在任何情况下都是浪费时间。当然,有些人会不同意:)