2016-03-09 18 views
34

Tôi tưởng tượng mọi người thường sử dụng Flow và Jest (và React) cùng nhau, nhưng Flow dường như không biết về các hình cầu Jest (hoặc Jasmine). Khi tôi thêm // @flow để thử nghiệm của tôi, tôi nhận được lỗi dòng như thế này:Cách nào phù hợp để viết các bài kiểm tra Jest được xác minh bằng Flow?

src/__tests__/Thing-test.js:3 
    3: jest.unmock('../Thing') 
    ^^^^ identifier `jest`. Could not resolve name 

src/__tests__/Thing-test.js:7 
    7: describe('Thing',() => { 
    ^^^^^^^^ identifier `describe`. Could not resolve name 

src/__tests__/Thing-test.js:8 
    8: it('does stuff',() => { 
     ^^ identifier `it`. Could not resolve name 

tôi có thể viết một giao diện dòng chảy cho jest/Jasmine, nhưng điều đó dường như dài và như tôi phải mất một cái gì đó. Để quá trình Flow node_modules/jest-cli dường như không giúp ích gì.

+1

Bạn có thể tạo/cài đặt tệp kê khai cho Jest. Hoặc [thủ công] (https://flowtype.org/docs/declarations.html#pointing-your-project-to-declarations) hoặc sử dụng [flow-typeed] (https://github.com/flowtype/flow-typed): 'jest' cài đặt kiểu dòng chảy. Ngoài ra hãy xem kho lưu trữ này, nơi mọi thứ được cấu hình: [node-flowtype-boilerplate] (https://github.com/jsynowiec/node-flowtype-boilerplate) –

Trả lời

15

Mặc dù Jest được viết bằng chú thích dòng nhưng chúng loại bỏ các loại cho phiên bản npm vì vậy chúng tôi không cần babel để chạy nó. May mắn thay các loại đã có trong dòng kiểu vì vậy giải pháp là khá dễ dàng (chỉ cần như đã đề cập trong các bình luận):

npm install -g flow-typed 

# replace the version with the jest version in your package.json 
flow-typed install [email protected] 

Mặc dù tôi đã phải thêm dòng này cũng như để .eslintrc.json tôi:

{ 
    "env": { 
    "jest": true 
    } 
} 

Và bổ sung thêm nó vào tập tin .flowconfig của bạn như sau:

[libs] 
flow-typed 
+6

Điều này không hiệu quả đối với tôi. WebStorm vẫn hiển thị lỗi Dòng: định danh 'it'. không thể giải quyết tên Dự án của tôi đã được thiết lập với ứng dụng tạo phản ứng. Tôi không có tệp .eslintrc.json – bedouger

+2

Đảm bảo bạn cũng có 'flow-typed' trong phần' .flowconfig' '[libs]' như được đề xuất [ở đây] (https://github.com/styled-components)/styled-components/issues/458 # issuecomment-292932110). –

1

Tôi nghĩ rằng declare var jest: any; nên thực hiện thủ thuật (đặt nó ở đầu mỗi tệp thử nghiệm hoặc ở đâu đó trong thư mục lib luồng của bạn).

5

Nếu bạn đã tạo proj của bạn ect với ứng dụng tạo phản ứng, bạn phải thêm thủ công jest vào packages.json của bạn. Nếu không, việc nhập luồng sẽ không cài đặt các định nghĩa kiểu cần thiết vì ứng dụng tạo phản ứng không thêm sự phụ thuộc này vào packages.json.

yarn add --dev jest 
flow-typed install 
Các vấn đề liên quan