2014-07-18 28 views
23

Có cách nào để có phạm vi mã trong khung kiểm tra Javascript Jest được xây dựng trên đầu trang của Jasmine không?Mã bảo hiểm cho Jest

Khung nội bộ does not in mã vùng phủ sóng. Tôi cũng đã thử sử dụng Istanbul, blanketJSCover, nhưng không có công cụ nào trong số đó hoạt động.

+0

Tôi không thích thú lắm, nhưng bạn đã thấy [config.collectCoverage] (http://facebook.github.io/jest/docs/api.html#config-collectcoverage-boolean) chưa? –

+0

Mã nên sử dụng cờ cấu hình đó [được nhận xét] (https://github.com/facebook/jest/blob/db003d5dc76b966199f8072343de1f18231d82e3/src/defaultTestResultHandler.js#L99-L103). –

Trả lời

24

CẬP NHẬT: 8/13/201 - Câu trả lời này hoàn toàn lỗi thời. Chỉ cần nhìn vào các tài liệu Jest bây giờ. Họ có hỗ trợ chính thức và tài liệu hướng dẫn về cách thực hiện việc này.

@hankhsiao đã có một repo chia đôi nơi Istanbul đang làm việc với Jest. Thêm thông tin này vào phụ thuộc dev của bạn

"devDependencies": { 
    "jest-cli": "git://github.com/hankhsiao/jest.git" 
} 

Đồng thời đảm bảo phạm vi được bật trong mục nhập jav package.json của bạn và bạn cũng có thể chỉ định định dạng mình muốn. (Html ​​khá tệ).

"jest": { 
    "collectCoverage": true, 
    "coverageFormats": ["json", "html"], 
} 

Hoặc thêm --coverage khi bạn gọi jest.

+0

Nó [hoạt động] (https://github.com/palcu/jest-example). Cảm ơn bạn! –

+1

Tùy chọn vùng phủ sóng đã được xóa - có vẻ như json và html đều được tạo ra mỗi lần. –

+0

Tôi sử dụng tùy chọn --coverage nhưng hoàn toàn không có gì khác xảy ra. – gbbr

-3

Hãy thử Chutzpah. Tôi vừa mới sử dụng nó. Và tôi đã viết blog về cách tích hợp trong Visual Studio.

Đây là cách tôi đã làm mã số bảo hiểm với sự gan dạ: http://francorobles.wordpress.com/2014/09/14/code-coverage-with-chutzpah/

+0

Chutzpath được xây dựng trên đầu trang của Chăn và tôi được chỉ định ở trên mà Jest không hoạt động với nó. –

+0

Thú vị vì tôi vừa làm việc. https://francorobles.wordpress.com/2014/09/14/code-coverage-with-chutzpah/ – francorobles

+1

Bạn không sử dụng Jest, theo mặc định, mọi lệnh đều được yêu cầu. –

4

Alright, bỏ qua câu trả lời trước của tôi như ai đó nói với tôi nó không giải quyết được vấn đề.

mới trả lời:

1) Kiểm tra jest mới nhất (v 0.22): https://github.com/facebook/jest

2) Đội facebook đặt istanbul như một phần của báo cáo bảo hiểm và bạn có thể sử dụng nó trực tiếp.

3) Sau khi thực hiện jest, bạn có thể nhận báo cáo bảo hiểm trên bảng điều khiển và trong thư mục gốc được thiết lập bởi jest, bạn sẽ tìm thấy báo cáo phủ sóng ở định dạng json và html.

4) FYI, nếu bạn cài đặt từ npm, bạn có thể không nhận được phiên bản mới nhất; vì vậy hãy thử github trước và đảm bảo rằng mức độ phù hợp là những gì bạn cần.


Cũ Trả lời:

Got cùng một vấn đề là tốt. Câu trả lời ngắn gọn là: IstanbulJest KHÔNG hoạt động cùng nhau.

Kiểm tra các trang sau để biết chi tiết hơn:

https://github.com/facebook/jest/issues/101

jest sử dụng contextify chạy script JS trong một bối cảnh V8 trong mã nguồn gốc như vậy, bỏ qua tất cả các istanbul của yêu cầu và móc vm.runInThisContext. Vì vậy, bìa istanbul sẽ không hoạt động vì các chức năng node.js tiêu chuẩn có thể không được sử dụng và các tập tin định trước sẽ không giúp ích gì vì mọi thử nghiệm chạy trong hộp cát riêng của nó và không có toàn cầu để chặn đối tượng phủ sóng.

@Ciro Costa: config.collectCoverage KHÔNG hoạt động vì đây là chức năng 'TODO'. Vui lòng kiểm tra mã nguồn.

+0

Câu hỏi đặt ra là làm thế nào để có được mã vùng phủ sóng cho Jest. Rằng Istanbul và Jest không làm việc cùng nhau có thể đúng, nhưng điều đó không trả lời câu hỏi. –

1

Tôi đã gặp vấn đề tương tự và tôi đã khắc phục sự cố như dưới đây.

  1. cài đặt sợi npm install --save-dev yarn
  2. cài đặt jest-cli npm install --save-dev jest-cli
  3. thêm video này vào các package.json "jest-coverage": "yarn run jest -- --coverage"

Sau khi bạn viết các bài kiểm tra chạy lệnh NPM chạy jest-bảo hiểm. Điều này sẽ tạo ra thư mục bảo hiểm trong thư mục gốc. /coverage/icov-report/index.html có chế độ xem mã HTML.

Mã hóa vui vẻ!

+1

Không cần cài đặt sợi. Sợi chỉ là trình quản lý gói khác với NPM – Black

4

Khi sử dụng jest 21.2.1, tôi có thể nhìn thấy mã số bảo hiểm tại dòng lệnh và tạo ra một thư mục bảo hiểm bằng cách thông qua --coverage đến jest kịch bản. Dưới đây là một số ví dụ.

tôi có xu hướng để cài đặt jest tại địa phương, trong trường hợp lệnh có thể trông như thế này:

node_modules/.bin/jest --coverage

tôi giả sử, nhưng chưa xác nhận, rằng điều này cũng sẽ làm việc nếu tôi cài đặt jest toàn cầu:

jest --coverage

Các tài liệu rất thưa thớt là here

Khi tôi điều hướng đến thư mục phủ sóng /lcov-report Tôi tìm thấy một tệp tin index.html có thể được tải vào trình duyệt. Nó bao gồm thông tin được in tại dòng lệnh, cộng thêm thông tin bổ sung và một số đầu ra đồ họa.

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