在BitBucket的管道中使用Jest运行ES2016单元测试

时间:2016-12-17 20:27:26

标签: reactjs npm webpack bitbucket jestjs

我使用create-react-app创建了一个webapp。我已经退出了这个项目。现在我尝试配置Jest,Enzyme和其他所有内容以便与BitBucket的管道配合使用,以便能够在bitbucket-pipelines.yml配置中运行它。

在本地,测试执行正常(使用npm test),但在BitBucket上运行代码时,我收到以下错误:

npm test
> sicj@0.1.0 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上运行它的区别。

我已经尝试过了:

但行为没有变化。

2 个答案:

答案 0 :(得分:1)

你正在运行npm install吗?我有一个示例create-react-app,可以使用以下设置:

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

答案 1 :(得分:0)

enzyme正确构建时,会有一个build文件夹。 对我来说,我安装了React 15,然后必须安装react-addons-test-utils

然后我重新安装enzyme并且一切正常(您可能会手动触发酶的安装后构建步骤,但npm i --save-dev enzyme对我来说似乎最简单。)