首页 > 解决方案 > 即使存在有效的测试,当导入某些文件时,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;

标签: javascriptjestjs

解决方案


(这是一个自我回答)

在使用 Jest 添加实际测试之前,我在 Timer.js 文件中添加了一个快速测试功能,只是为了验证它是否可以在不运行整个应用程序的情况下工作。

不幸的是,名为 的函数没有以、或test为前缀。据我所知,它覆盖了 Jest 库中的测试函数,结果就是这个错误消息。当或类似情况出现时,错误是varletconsttest = 1

TypeError: test is not a function

由于编码实践不佳,这是一个极端的极端情况,而且我认为这是我的语法错误,所以我不会因为错误消息没有帮助而指责错误消息。无论如何,我希望这可以帮助将来的人。


推荐阅读