2017-04-25 51 views
0

我試圖用JEST for React設置單元測試。Bable不編譯JSX for Jest/React

我的當前設置裏面的package.json:

"jest": { 
"transform": { 
    "^.+\\.jsx?$": "babel-jest" 
}, 
"moduleFileExtensions": [ 
    "js", 
    "json", 
    "jsx" 
] 

}

然後裏面.babelrc我:

{ 
    "plugins": ["syntax-dynamic-import", "transform-runtime"], 
    "presets": [ 
    [ 
     "es2015", 
     { 
     "modules": false 
     } 
    ], 
    "react" 
    ], 
    "env": { 
    "test": { 
     "presets": ["es2015", "react"] 
    } 
    } 
    } 

我然後運行NPM測試,並隨後開始運行開玩笑。但是,它會報錯/不合格: 測試套件未能在

    componentDidMount=()=>{ 
      |     ^
     25 |   window.addEventListener('scroll', this.handleScroll) 
     26 |  } 

用錯誤來運行這是告訴我,而測試輸入正確的組件,它最終停止在一些ES2015語法。

我有什麼設置錯了嗎?在JEST試圖運行它的測試之前,似乎babelrc實際上並沒有進行轉譯?它是否正確? 我的.babelrc位於根級別。

+0

看起來你的代碼在「componentDidMount」定義的周圍有一些語法錯誤。如果你的'componentDidMount'被定義爲一個對象的屬性,你應該使用':'而不是'='。否則,請在此處顯示您的代碼。 –

+0

@PhilipTzou這只是我的React組件中的componentDidMount react lifecyle方法。運行該應用程序,此方法正常工作,沒有錯誤。 – Srmuhs

+0

'componentDidMount =()=> {...}'代碼似乎不正確。你可以發佈上下文代碼,以便我們可以深入瞭解它嗎? –

回答