2017-06-28 127 views
0

不幸的是,我们的web项目还没有使用ES6模块。相反,我们将我们的TypeScript源代码进行传输,然后将它们连接在一起。使用不带ES6模块的笑话

这适用于浏览器以及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 

有没有办法告诉开玩笑哪些文件来加载(以什么顺序),然​​后再运行测试,就像我们对Karma和WallabyJS一样?

回答

0

您应该能够启动运行测试之前指定一个setupTestFrameworkScriptFile或[setupFiles]([setupTestFrameworkScriptFile](https://facebook.github.io/jest/docs/configuration.html#setupFiles]可以让你设置一些东西。

你会把那些在您的package.json,或单独的文件(如果你通过--config标志传入)

+0

我试过了,它并没有真正起作用,例如,需要jQuery的模块并不真正“知道”它被加载,我们的模块可以' t找到其他模块 似乎文件加载为setupFiles没有'window'作为它们的全局对象,所以它们不是正确更新它,其他模块不能正确使用它们。 – splintor