在 CLI 中运行时,Jest 测试不起作用
Posted
技术标签:
【中文标题】在 CLI 中运行时,Jest 测试不起作用【英文标题】:Jest tests are not working when run in CLI 【发布时间】:2019-12-27 10:21:09 【问题描述】:我在测试 Nestjs 时遇到了奇怪的问题。
当我运行npm run test
时,大多数测试都失败了。一些变量变得未定义,嵌套无法解决依赖关系等。
但是当我从 WebStorm 面板运行 ALL TESTS
时,一切正常。
https://gist.github.com/hejkerooo/5a56ee2a7d78ce41cb390d1ece648933
Nest can't resolve dependencies of the TrendService (?). Please make sure that the argument at index [0] is available in the _RootTestModule context.
at Injector.lookupComponentInExports (node_modules/@nestjs/core/injector/injector.js:180:19)
Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.Error: Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.
at mapper (node_modules/jest-jasmine2/build/queueRunner.js:25:45)
TypeError: Cannot read property 'clear' of undefined
17 | beforeEach(async () =>
18 | jest.restoreAllMocks();
> 19 | await trendsRepository.clear();
| ^
20 | );
21 |
22 | afterAll(async () =>
ReferenceError: You are trying to `import` a file after the Jest environment has been torn down.
(node:2633) UnhandledPromiseRejectionWarning: TypeError: Caught error after test environment was torn down
【问题讨论】:
您能否提供更多有关您的错误的背景信息?就像您定义测试文件的方式一样,TrendService
在哪里被导入和使用,以及您如何在测试文件中模拟它。最好提供一个有问题的存储库,以便我们可以重现并更好地帮助您
【参考方案1】:
问题已解决 - 刚刚使用 jest.setTimeout
到 50000
,工作正常。
我认为这是一个临时修复,但会深入研究它。
【讨论】:
以上是关于在 CLI 中运行时,Jest 测试不起作用的主要内容,如果未能解决你的问题,请参考以下文章
tslint CLI 和 jest CLI 在 iterm zsh macOS 上不起作用
当图像在 docker 机器中运行时,X11 转发不起作用,但如果图像在没有 docker 机器的情况下运行,则它可以正常工作