问题标签 [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 投票
1 回答
5182 浏览

unit-testing - 开玩笑找不到文件导入

Jest在我的应用程序中找不到导入的文件并以此错误结束:

FAIL pages_test_files/index.spec.js
● 测试套件无法运行 无法从'index.js' 中找到模块'../styles/sassTokenExports/colors.json' 但是,Jest 能够找到:
'../pages/index .js' 您可能希望在导入中包含文件扩展名,或更新您的 'moduleFileExtensions',当前为 ['js', 'json', 'jsx', 'ts', 'tsx', 'node'] .
请参阅https://jestjs.io/docs/en/configuration#modulefileextensions-array-string

我正在使用JestinnextJS进行单元测试。

0 投票
1 回答
459 浏览

reactjs - 运行笑话测试时,覆盖失败并出现 Unexpected token

我正在尝试让笑话测试在我的项目中起作用。我是开玩笑测试的新手,这是我的第一次设置。

测试似乎通过但覆盖失败。

执行时出现以下错误yarn test

我究竟做错了什么?

0 投票
1 回答
321 浏览

node.js - WebStorm - 调试 Jest 测试 - 断点之前的异常时间量

我已经设置了 typescript + jest(带有 ts-loader)。

在这个示例测试(项目中唯一的测试)中命中断点需要几分钟时间。这仅在 WebStorm 中发生。在具有此配置的 VSCode 中

几乎是瞬间的。

在 CRA 环境中调试 Jest 测试工作得很好,即使在 WebStorm 中也是如此。

考试:

回购: https ://github.com/vlopp/jest-webstorm-testing

请告诉我出了什么问题,以及如何最大限度地减少 WebStorm 调试测试所需的异常时间。

更新

扔掉 ts-jest 似乎并不能解决问题。

0 投票
1 回答
3456 浏览

typescript - How to let TypeScript know about custom Jest matchers?

I have a react/typescript project, using jest, where I have a custom matcher like:

which I reference in my tests by doing inside the describe function:

And use like this in it functions:

Tests run properly, but typescript compiler does not recognize the matcher, which makes sense cuz I haven't defined it anywhere in the types system

What I have found so far relates to extending the namespace for jasmine and/or jest, e.g.

which hasn't worked for me.

Do you have any idea?

0 投票
1 回答
623 浏览

jestjs - 如何在 JEST 测试中保留所有测试套件访问的单个变量(访问令牌)?

我是开玩笑测试的新手,我正在尝试找到一种方法来访问我项目中所有测试套件的访问令牌。我已经尝试过全局变量和 jest 的设置文件,但对我没有任何帮助。

我尝试像这个答案一样将所有内容都放在一个描述中, 但是我怎么能只提到文件夹名称而不是文件名呢?

如何将我的访问令牌写入我的项目中的一个空文件并在我的测试服中访问它?

0 投票
1 回答
569 浏览

jestjs - Jest 测试通过 CLI 运行,但通过 Visual Studio 2019 测试资源管理器失败

我在 Node.Js Typescript 项目中将 Jest 与 Visual Studio 2019 一起使用,并且发生了一些我不明白的事情,我将不胜感激一些指导,以便我了解正在发生的事情。

我在 Visual Studio 的 Node.js 项目中设置了 Jest。npm 包 jest、ts-jest 和 jest-editor-support 已安装。Typescript 文件在 VS 2019 中成功编译。

当我从命令行使用 Jest 时,所有测试都运行良好,包括 .ts 文件中的测试以及编译后的 .js 文件中的测试,与我在 .js 中设置的目标版本无关tsconfig.json。没有任何问题。

然而,当我使用 Visual Studio 2019 测试资源管理器时,有两件奇怪的事情:

  1. 使用低于“ES6”的目标版本tsconfig.json,构建失败,我看到巴比伦解析器(由 使用 )在和 语句jest-editor-support上引发解析器错误。foreachmap

  2. 即使使用“ES6”或更高版本的目标版本,当我使用 Jest 的 .each 函数时,包含这些函数的测试也无法正确运行。它们显示为“失败”,但在“测试详细信息摘要”窗口中,没有指向其他输出的链接。

由于 Jest 从命令行运行时没有问题,这意味着当测试通过 Visual Studio 2019 的测试资源管理器重新运行时会有所不同。如何让测试在测试资源管理器中以相同的方式成功运行?(没有明显发生的绕道巴比伦)。我正在寻找测试资源管理器中失败的测试运行的解决方案,以及了解正在发生的事情。我对 Jest 很陌生。

(顺便说一句,安装了 Jest / Typescript 的其他项目类型也会出现同样的问题)

0 投票
1 回答
493 浏览

javascript - 在 jest 框架中无法处理具有三元运算符检查的 const 值

我正在创建一个 npm 模块。使用 typescript 并使用 jest 作为测试框架。但能够覆盖下面代码中提到的信息结果条件。

索引.ts

索引.test.ts

我对此并不陌生,并且处于学习阶段,因此我们将不胜感激。提前致谢。

0 投票
1 回答
508 浏览

jestjs - 用 Jest 模拟 Phaser

我一直在尝试将 jest 设置为我正在处理的使用 Phaser 的项目的测试框架,但我在试图模拟 Phaser 本身时遇到了困难。我首先遇到了缺少画布的问题,我可以通过链接解决这个问题。但现在我收到另一个错误“无法读取未定义的属性'位置'”。

jest.config.js:

__mocks__/phaser.js:

错误信息:

我正在查看该转换文件及其在吸气剂上的爆炸,因为 this.body 未定义:

有没有其他人有这个问题?我希望我只是有一些配置错误。

0 投票
0 回答
143 浏览

typescript - 单元测试一个打字稿控制器,用passportJS实现社交登录

我遇到了一个让我头疼的问题。我正在使用 passportJSpassport-facebook-token以及passport-google-oauth20在我的 node-express API 中使用 Facebook 和 Google 实现社交登录。

问题出现在单元测试中;我没有找到如何进行集成。

这是我尝试过的:

路线

该路线使用我配置如下的 passportJS 中间件:

控制器

这是我的控制器的样子

const { provider, displayName, emails, photos }: any = req.user;

简而言之,我必须从护照中间件方法user自然返回的对象中接收提供者、显示名称、电子邮件和照片。authenticate()你可以回顾一下路由定义来理解。

单元测试

当我使用 jest 对控制器进行单元测试时,我采用了模拟响应和请求的方法,以便可以将user对象传递给请求。我尝试使用 jest 中的模拟实用程序,但无法正确模拟 express 请求和响应,因此尝试使用不同的第三方库,例如我觉得很有趣的 jest-express

这是我的测试的样子:

问题

当我运行测试时,我得到了这个响应。

在此处输入图像描述

它清楚地表明控制器正在运行,但它落在了假设以 500 状态响应表示错误请求的 catch 块上。

所以我真的需要帮助,如果有地方我做错了,或者有任何文档可以帮助我有效地模拟快速响应和请求。

0 投票
0 回答
822 浏览

typescript - 开玩笑测试随机失败

我有一个开玩笑的配置,例如:

子目录/tsconfig.jest.json :

现在,当我并行运行 jest 测试时(默认情况下),我只在项目 2 个测试文件中遇到故障。故障总是相同的,但发生故障的文件是随机的。

相关的软件包版本是:

中的测试project1永远不会失败。
此外,当
- 仅project2运行测试

-project1并且project2一个接一个地运行(以任何顺序)时,
一切正常。

为什么会发生这种情况?