2016-12-17 91 views
2

我有一個使用create-react-app創建的webapp。我已經推出了這個項目。現在我正在嘗試配置Jest,Enzyme和所有其餘的與BitBucket的管道配合使用,以便能夠在bitbucket-pipelines.yml配置中運行它。在BitBucket的管道中使用Jest運行ES2016單元測試

在本地,測試執行罰款(使用npm test),但到位桶運行的代碼時,我發現了以下錯誤:

npm test 
> [email protected] test /opt/atlassian/pipelines/agent/build 
> node scripts/test.js --env=jsdom 
FAIL src/App.test.js 
    ● Test suite failed to run 
    Cannot find module 'enzyme' from 'App.test.js' 

     at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:144:17) 
     at Object.<anonymous> (src/App.test.js:3:41) 
Test Suites: 1 failed, 1 total 
Tests:  0 total 
Snapshots: 0 total 
Time:  1.323s 
Ran all test suites. 
npm ERR! Test failed. See above for more details. 

所以它只是無法找到enzyme模塊。要檢查模塊是否安裝正確,我運行ls node_modules,然後運行ls node_modules/enzyme。結果如下:

+ ls node_modules/enzyme 
CHANGELOG.md  ReactWrapper.js   karma.conf.js src 
CONTRIBUTING.md ShallowWrapper.js   mount.js  test 
INTHEWILD.md  book.json     node_modules  withDom.js 
LICENSE.md  docs      package.json 
MAINTAINERS  example-test.sh   render.js 
README.md  install-relevant-react.sh shallow.js 

那麼,這對我來說很好。

我在做什麼錯?我剛剛開始使用React,並且通常使用前端開發。我不知道在本地(在我的桌面上)和BitBucket上運行它有什麼區別。

我已經嘗試過:

應用指針,但在行爲上沒有任何變化。

回答

1

你在運行npm install嗎?我有一個例子創建反應的應用程序內,與下面的設置工作:

pipelines: 
    default: 
    - step: 
     script: 
      - npm install -g yarnpkg 
      - export CI=true 
      - yarn install 
      - yarn test 
      - yarn build 
+0

是的,我運行npm install。我使用npm,而不是紗線,所以你的例子沒有多大幫助。我認爲問題在於單元測試框架沒有被看到的酶。 – PiotrK

0

enzyme正確構建會有一個build文件夾。 對我來說,我安裝了React 15,然後不得不安裝react-addons-test-utils

然後我重新安裝了enzyme,一切正常(您可能會手動觸發酶的安裝後生成步驟,但npm i --save-dev enzyme對我來說似乎最簡單)。