首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用Typescript运行Jest

无法使用Typescript运行Jest
EN

Stack Overflow用户
提问于 2021-09-09 17:14:34
回答 2查看 378关注 0票数 1

我正在尝试使用Jest运行Typescript代码的Typescript测试。我尝试使用多种形状的ts-jest来配置Jest,但是没有成功。

我得到了:

代码语言:javascript
运行
复制
  node_modules/@polkadot/api/promise/index.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";

  ^^^^^^

    SyntaxError: Cannot use import statement outside a module

      1 | import log4js from "log4js";
    > 2 | import { ApiPromise } from "@polkadot/api/promise";
        | ^

我的jest.config.ts:

代码语言:javascript
运行
复制
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
import type { Config } from "@jest/types";
// Sync object
const config: Config.InitialOptions = {
  roots: ["./"],
  preset: "ts-jest",
  coverageDirectory: "../coverage",
  verbose: true,
  testEnvironment: "node",
  //setupFilesAfterEnv: ["./jest.setup.ts"],
  testMatch: ["**/?(*.)+(test).ts"],
  resetMocks: true,
  clearMocks: true,
  extensionsToTreatAsEsm: [".ts"],
  transformIgnorePatterns: ["node_modules/(?!(@polkadot)/)"],
  //collectCoverage: true
};
export default config;

使用以下命令运行测试:"jest --config src/test/jest.config.ts --detectOpenHandles"

对如何解决这个问题有什么想法吗?

我还尝试执行我的代码with TAP, but also unsuccessfully。如果异步测试可以运行,我将非常感谢解决这两个问题的指导。

EN

回答 2

Stack Overflow用户

发布于 2021-09-17 13:12:10

你用Babel设置jest了吗?Jest不理解Typescript,所以它依赖babel进行翻译。

票数 1
EN

Stack Overflow用户

发布于 2021-09-14 15:07:01

这个问题首先与这样一个事实有关,即node_modules中的所有代码在Jest执行之前都不会被转换,并且Jest只能处理CommonJS code。为了将node_modules中的ESM代码转换为CJS,您必须添加transformIgnorePatterns。看看this example,看看你是如何正确地设置它的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69122308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档