首页 > 解决方案 > Jest 似乎跳过了测试

问题描述

我正在用 Jest 做一些原型设计,但遇到了一个奇怪的问题。我的测试位于一个单独的文件中,该文件将测试导出为函数。然后我有另一个文件导入测试并将它们作为一个套件运行。这个想法是我可以使用配置文件动态创建一个测试套件来提取我想要的测试。

我正在尝试使用import表达式来加载文件。这按预期工作。我看到了测试,但 Jest 似乎跳过了测试。测试在控制台中输出,但它既不是通过也不是失败。它看起来与运行跳过的测试的方式相同。

这是我正在尝试做的一个例子。

我的文件包含我的测试:

import { sayHello } from '../../src/say-hello';

const testReturnMessage = () => {
    return it('should return the correct message', () => {
        expect(sayHello('Example')).toBe('Hello Example');
    });
};
export const SayHelloTests = {
    testReturnMessage,
};

然后我import()把它拉到一个测试套件中:

import('./sayHelloModule').then((module) => {
    module.SayHelloTests.testReturnMessage();
}).catch(err => console.warn(err));

这就是笑话输出的样子。我正在使用 codesandbox.io 来做我的原型: 在此处输入图像描述

我知道我的测试有效,因为当我以正常方式进行测试时,我通过了。

import { SayHelloTests } from './sayHelloModule';
SayHelloTests.testReturnMessage();

这是通过的测试: 在此处输入图像描述

这一直让我发疯,因为它应该工作,我不知道为什么它不工作。我猜它与 Jest 有关,因为如果我导入一个非测试函数,它运行得很好。有没有人有任何想法或以前见过这样的事情?

标签: javascripttestingjestjs

解决方案


推荐阅读