使用没有ES6模块的jest

时间:2017-06-28 14:06:34

标签: javascript unit-testing jest es6-modules

不幸的是,我们的网络项目还没有使用ES6模块。相反,我们会转换我们的TypeScript源,然后将它们连接在一起。

这在浏览器以及Karma和WallabyJS中都很有效(通过在配置文件中设置files选项)。

由于我们的1500次测试需要很长时间才能执行,我想查看Jest。但是,我们的测试失败了,因为jest无法找到我们正在导入的类型。

例如,我们有一个名为StringUtils的类,以及以下代码:

import StringUtils = common.utils.StringUtils;

class Person {
    private _name: string;
    address(): string {
        return StringUtils.buildAddress(this);
    }
}

我们失败了:

ReferenceError: common is not defined

有没有办法在运行测试之前告诉jest要加载哪些文件(以及以什么顺序加载),就像我们使用Karma和WallabyJS一样?

1 个答案:

答案 0 :(得分:0)

您应该能够指定setupTestFrameworkScriptFile或[setupFiles]([setupTestFrameworkScriptFile](https://facebook.github.io/jest/docs/configuration.html#setupFiles],它可以让您在开始运行测试之前设置一些内容。

您可以将它们放在package.json或单独的文件中(如果您使用--config标记传递它)。