2017-10-08 20 views
9

Hôm qua tôi nâng cấp Phản ứng của tôi dự án để v16.0, nhưng tôi phát hiện ra rằng enzyme có một số vấn đềTập tin cài đặt enzyme ở đâu?

Error: 
     Enzyme Internal Error: Enzyme expects an adapter to be configured, but found none. To 
     configure an adapter, you should call `Enzyme.configure({ adapter: new Adapter() })` 
     before using any of Enzyme's top level APIs, where `Adapter` is the adapter 
     corresponding to the library currently being tested. For example: 
     import Adapter from 'enzyme-adapter-react-15'; 
     To find out more about this, see http://airbnb.io/enzyme/docs/installation/index.html 

    at validateAdapter (spec/components/page_components/SongListItem/index.spec.js:9:1141986) 
    at getAdapter (spec/components/page_components/SongListItem/index.spec.js:9:323041) 
    at new ReactWrapper (spec/components/page_components/SongListItem/index.spec.js:9:622193) 
    at mount (spec/components/page_components/SongListItem/index.spec.js:9:2025476) 
    at UserContext.<anonymous> (spec/components/page_components/SongListItem/index.spec.js:9:1235741) 

Và tôi tìm thấy một giải pháp chính thức website

// setup file 
import { configure } from 'enzyme'; 
import Adapter from 'enzyme-adapter-react-16'; 

configure({ adapter: new Adapter() }); 

Nhưng tôi có một vấn đề: Tập tin cài đặt enzyme nên được viết ở đâu? Ở phía trước của mỗi tệp thử nghiệm?

Tôi cố gắng để thêm mã ở trên để một trong các tập tin kiểm tra, Nhưng vẫn còn là một vấn đề

Internal error: attempt to prepend statements in disallowed (non-array) context at C:/Users/killer/workspace/react/NetEase-Cloud-Music-Web/spec/components/page_components/SongListItem/index.spec.js 

This là địa chỉ của dự án của tôi

Trả lời

21

Tôi đã có một vấn đề tương tự

Nếu bạn đang sử dụng jest để chạy thử nghiệm của mình, bạn có thể tạo tệp test-setup.js và thêm đoạn mã từ tài liệu enzyme:

// test-setup.js 
import { configure } from 'enzyme'; 
import Adapter from 'enzyme-adapter-react-16'; 

configure({ adapter: new Adapter() }); 

sau đó thêm một khóa setupTestFrameworkScriptFile vào cấu hình jest của bạn và trỏ đến tệp đó. Ví dụ, nếu cấu hình jest của bạn là trong package.json:

// package.json 
{ 
    ..., 
    "jest": { 
     "setupTestFrameworkScriptFile": "<rootDir>/test-setup.js" 
    } 
} 

từ các tài liệu jest https://facebook.github.io/jest/docs/en/configuration.html#setuptestframeworkscriptfile-string:

Đường dẫn đến một module có thể chạy một số mã để cấu hình hoặc thiết lập các khuôn khổ kiểm tra trước mỗi kiểm tra. Vì setupFiles thực hiện trước khi khung kiểm thử được cài đặt trong môi trường, tệp kịch bản lệnh này trình bày cho bạn cơ hội chạy một số mã ngay sau khi khung kiểm tra đã được cài đặt trong môi trường.

này sẽ thực hiện sau khi môi trường jest của bạn được khởi tạo, nhưng trước khi xét nghiệm enzyme của bạn được thực hiện

3

Đối với những người sử dụng tạo-phản ứng ứng dụng, con đường dự kiến ​​cho tập tin cài đặt của bạn là src/setupTests.js. Xem documentation (README) trên GitHub:

Khởi tạo môi trường thử nghiệm

Lưu ý: Tính năng này có sẵn với [email protected] và cao hơn. Nếu ứng dụng của bạn sử dụng API trình duyệt mà bạn cần thử nghiệm hoặc nếu bạn chỉ cần thiết lập toàn cầu trước khi chạy thử nghiệm, hãy thêm src/setupTests.js vào dự án của bạn. Nó sẽ được tự động thực hiện trước khi chạy thử nghiệm của bạn.

(Do ứng dụng tạo phản ứng không xử lý, ít nhất trong v1.4.1, tùy chọn setupTestFrameworkScriptFile trong package.json).

Các vấn đề liên quan