2017-06-28 97 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