问题标签 [ts-jest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
16938 浏览

jestjs - 为所有测试配置一次笑话超时

根据文档,可以使用 jest-object将默认异步超时从 5000ms 增加到

更具体地说,通过使用jestsettimeouttimeout

我面临的问题是我正在针对一个非常慢的 API 运行一系列测试,响应时间为 5-15 秒,在每个测试的顶部配置这个 jest 对象非常烦人。

是否可以在运行所有测试文件之前声明这些设置一次?

0 投票
1 回答
2505 浏览

typescript - 升级玩笑后“[BABEL] .value 不是有效的插件属性”

我将应用程序与 webpacker (rails gem)、vue、typescript、jest 一起使用。我也使用 ts-jest。当我将 jest 从升级24.8.024.9.0时,如果我尝试运行任何测试,我会遇到此错误:

我不确定是什么导致了这个错误。你有什么建议吗?

jest.config.js

jest_setup.ts

包.json

babel.config.js

0 投票
3 回答
11278 浏览

reactjs - React Jest 测试无法使用 ts-jest 运行 - 导入文件上出现意外令牌

我有一个测试,测试一个 TSX 文件,该文件写在一个 JSX 文件中,由于意外的令牌而无法运行:

我有另一个用 JSX 编写的测试,用于运行 JSX 文件。我正在使用 React 测试库,但我认为这不是问题,因为文件导入测试失败。

堆栈跟踪:

笑话配置:

TS 配置:

测试组件TSX.tsx

测试组件TSX.test.tsx

包.json

0 投票
1 回答
7623 浏览

javascript - ts-jest 无法运行 tsx 测试文件,因为从模块的 js 文件“导入”

我正在尝试使用ts-jest运行 tsx 测试文件form.spec.tsx

form.spec.tsx导入编辑器React Quill和一些插件。

如何绕过SyntaxError: Unexpected identifier来自名为quill-mention that import的插件的错误Quill?该模块涉及form.spec.tsx.

我已经在 jest 配置中添加了 transformIgnorePatterns 字段,但是/node_modules/quill-mention/src/quill.mention.js["<rootDir>/node_modules/"]仍然存在这个问题

form.spec.tsx:

包.json

tsconfig.jest.json:

有人说allowJs: true可以修复它,但它不起作用。我所有的测试都失败了JavaScript heap out of memory

0 投票
2 回答
1921 浏览

reactjs - 类型错误:document.createElement 不是函数

我正在尝试使用包含 Office Fabric React 组件的ts-jest测试一个简单的 React 组件:

规格:

但是在运行测试时出现以下错误:

类型错误:document.createElement 不是函数

在 Stylesheet.Object..Stylesheet._createStyleElement (/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/merge-styles/lib-commonjs/Stylesheet.js:250:33) 在 Stylesheet.Object.. Stylesheet._getStyleElement (/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/merge-styles/lib-commonjs/Stylesheet.js:235:33) 在 Stylesheet.Object..Stylesheet.insertRule (/Users /joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/merge-styles/lib-commonjs/Stylesheet.js:167:71) 在 applyRegistration (/Users/joebloggs/Documents/Projects/Add-In/node_modules/ @uifabric/merge-styles/lib-commonjs/styleToClassName.js:269:20) 在 Object.styleToClassName (/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/merge-styles/lib-commonjs/ styleToClassName.js:289:5) 在 Object.mergeStyles (/Users/joebloggs/Documents) 的 mergeCss (/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/merge-styles/lib-commonjs/mergeStyles.js:45:37) /Projects/Add-In/node_modules/@uifabric/merge-styles/src/mergeStyles.ts:26:9) 在 _constructFinalProps (/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/foundation/lib -commonjs/slots.js:218:36) 在结果 (/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/foundation/lib-commonjs/slots.js:99:22) 在 _renderSlot (/用户/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/foundation/lib-commonjs/slots.js:235:41)_constructFinalProps (/Users/joebloggs/Documents/Projects/Add-In/) 处的合并样式 (/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/merge-styles/src/mergeStyles.ts:26:9) node_modules/@uifabric/foundation/lib-commonjs/slots.js:218:36)在结果(/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/foundation/lib-commonjs/slots.js: 99:22)在_renderSlot(/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/foundation/lib-commonjs/slots.js:235:41)_constructFinalProps (/Users/joebloggs/Documents/Projects/Add-In/) 处的合并样式 (/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/merge-styles/src/mergeStyles.ts:26:9) node_modules/@uifabric/foundation/lib-commonjs/slots.js:218:36)在结果(/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/foundation/lib-commonjs/slots.js: 99:22)在_renderSlot(/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/foundation/lib-commonjs/slots.js:235:41)22) 在_renderSlot (/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/foundation/lib-commonjs/slots.js:235:41)22) 在_renderSlot (/Users/joebloggs/Documents/Projects/Add-In/node_modules/@uifabric/foundation/lib-commonjs/slots.js:235:41)

0 投票
0 回答
44 浏览

typescript - 使用 jest-typescript 为构造函数创建 Mock

我想使用 jest for typescript 为构造函数创建一个模拟。我有一门课,比如说,车辆

让类Engine是:

我想为 Engine.constructor 创建模拟。我试过使用 engine.constructor = jest.fn().mockReturnValue('mock-engine'),但没有被调用。我不应该嘲笑班级或 getEngine()。请帮我解决一下这个。

0 投票
1 回答
418 浏览

javascript - 浅模拟扩展了 React.Component显示错误

模拟组件时出现以下错误。

'{ props: { index: number; 类型的转换 作业标题:字符串;分配描述:字符串;分配使用时间:字符串;AssignmentScheduledHours:字符串;分配开始日期:字符串;AssingmentEndDate:字符串;}; }' 键入 'InsightsComponent' 可能是一个错误,因为这两种类型都没有与另一种充分重叠。如果这是故意的,请先将表达式转换为“未知”。输入'{道具:{索引:数字;作业标题:字符串;赋值描述:字符串;分配使用时间:字符串;AssignmentScheduledHours:字符串;分配开始日期:字符串;AssingmentEndDate:字符串;}; }' 缺少 'InsightsComponent' 类型的以下属性:百分比、切换、trimZeroDecimal、render 和 5 more.ts(2352) 算术运算的左侧必须是 ' 类型

下面是我的组件类的样子

下面是我的测试课

0 投票
1 回答
1742 浏览

typescript - ts-jest 单元测试的麻烦

尝试使用 对 Firebase 云功能进行单元测试ts-jest,但在进行简单测试时遇到问题。

我已经为 typescript、typings 和 ts-jest 配置安装了 jest,但我收到了一个错误,提示@types/jest未安装。

main.test.ts

错误消息:找不到名称“测试”。您是否需要为测试运行器安装类型定义?尝试npm i @types/jestnpm i @types/mocha.ts(2582)

版本: @types/jest@24.0.19

0 投票
1 回答
428 浏览

javascript - 在 Electron 中运行 Jest 并使用 --inspect-brk

我试图让 Jest 在 Electron 运行时(而不是 Node)中运行,当我启动 Electron 时它按预期工作,如下所示:

但是,当我尝试在启用调试的情况下运行 Electron 时,Jest 无法检测到任何单元测试:

此时我使用chrome://inspect附加节点调试器会话,会话在调试器中暂停,一旦我点击恢复脚本执行按钮,就会出现以下输出:

  • 这次 Jest 找不到任何单元测试。
  • 为什么添加--inspect-brk会改变 Jest 的行为?

如果我改为使用节点在启用调试的情况下运行,那也可以正常工作:

如果我使用--inspect而不是以--inspect-brk同样的方式失败:

因此,似乎是 Electron 运行时、Jest 和启用调试的特定交集导致了这个问题。

这里的参考是我的示例的源代码,它是从TypeScript-Babel-Starter派生的。我正在使用 Typescript 编写代码和测试,并ts-jest用作 Jest 预设。

包.json

jest.config.js

索引.spec.ts

索引.ts

0 投票
16 回答
121607 浏览

reactjs - 如何解决“无法在模块外使用导入语句”的问题

我有一个使用 TypeScript、Jest、Webpack 和 Babel 构建的 React 应用程序(不使用 Create React App)。尝试运行时yarn jest,出现以下错误:

开玩笑的错误

我已尝试删除所有软件包并重新添加它们。它不能解决这个问题。我看过类似的问题和文档,但我仍然误解了一些东西。我什至遵循另一个指南从头开始设置此环境,但我的代码仍然收到此问题。

依赖包括...

组件的导入行...

测试文件....

我希望能够在我的组件中使用命名导入,而不会导致测试失败。如果我只通过我的解决方案使用默认导入,它似乎可以解决这个问题,但我宁愿不走那条路。