2016-12-17 39 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对我来说似乎最简单)。