javascript - 即使存在有效的测试,当导入某些文件时,Jest 也会给出“您的测试套件必须包含至少一个测试”
问题描述
每当我从我的测试文件中导入某个文件时,Jest 都会产生一个错误,我在测试文件中没有任何测试,即使有一个只有常量应该通过。
这是在 create-react-app 文件夹中运行的,但我使用全局安装的 Jest 进行服务器端测试。
错误
FAIL server/__tests__/server.test.js
● Test suite failed to run
Your test suite must contain at least one test.
at onResult (../../../../usr/lib/node_modules/jest/node_modules/@jest/core/build/TestScheduler.js:173:18)
测试文件的简化版本:
const timer = require("./timer.js");
test("should pass", () => {
expect(1 + 2).toBe(3);
});
timer.js的简化版本:
class Timer {
constructor(ms, onCompleteFunction) {
this.ms = ms;
this.startTime = Date.now();
setTimeout(onCompleteFunction, ms);
}
}
test = () => {
let timer = new Timer(5000, () => console.log("Test Done!"));
};
test();
module.exports = Timer;
解决方案
(这是一个自我回答)
在使用 Jest 添加实际测试之前,我在 Timer.js 文件中添加了一个快速测试功能,只是为了验证它是否可以在不运行整个应用程序的情况下工作。
不幸的是,名为 的函数没有以、或test
为前缀。据我所知,它覆盖了 Jest 库中的测试函数,结果就是这个错误消息。当或类似情况出现时,错误是var
let
const
test = 1
TypeError: test is not a function
由于编码实践不佳,这是一个极端的极端情况,而且我认为这是我的语法错误,所以我不会因为错误消息没有帮助而指责错误消息。无论如何,我希望这可以帮助将来的人。
推荐阅读
- python - 如何在 Django 模板中使用 Bootstrap/静态文件
- javascript - 在对象数组中按特定键计算分组值
- python - 如何根据python中的条件提取文本
- javascript - 在手风琴中隐藏元素
- swift - 当互联网连接关闭时,Xcode 模拟器如何从互联网获取数据?
- javascript - 为什么要在更改反应状态之前或在处理它时克隆反应状态?
- ios - 使用解释器解决 Xamarin iOS Emit PlatformNotSupportedException
- angular - 在 Angular 组件 html 模板中使用 getter
- r - 如何更改 ggplot2 上的标签以悬停在 R 中?
- ios - 子类可以不继承超类的初始化程序吗?我们什么时候使用所需的初始化程序?