5

Tôi đang tìm kiếm con trỏ về phía một công cụ có thể giúp tôi xác định phạm vi bảo hiểm tự động chức năng trong nodeJs. (Đây không phải là bài kiểm tra đơn vị!).CodeCoverage cho tự động hóa chức năng trong ứng dụng NodeJS

Tôi có rất nhiều của tự động hóa selen chạy cho frontend application của tôi viết bằng NodeJS. Nhưng tôi muốn biết phạm vi phủ sóng chức năng của các tự động hóa này.

(tôi đã sử dụng jacoco cho java dựa trước đó)

+0

tôi đã sẵn sàng để tăng tiền thưởng cho câu hỏi này. Làm thế nào tôi có thể làm điều đó? – footy

+0

Bạn đã thử [Istanbul] (https://github.com/gotwarlost/istanbul) chưa? Nó sẽ cung cấp cho bạn phạm vi phủ sóng, phủ sóng chi nhánh, v.v. – GilZ

+0

vâng tôi đã thử các bài kiểm tra đơn vị nhưng không thử nghiệm selen. làm thế nào tôi có thể làm điều đó – footy

Trả lời

1

Câu trả lời cho câu hỏi này là phải có istanbul-middlewarehttps://github.com/gotwarlost/istanbul-middleware

istanbulistanbul-middleware là khác nhau và cần phải được cài đặt riêng rẽ. Tôi đã thiết lập thành công mã bằng cách sử dụng này. Bước như sau

  1. thêm istanbul-middleware để ứng dụng nodejs bạn
  2. thêm mã thiết bị đo đạc bên trong khởi động ứng dụng của bạn. Ví dụ được đưa ra trong github.
  3. Sau đó khởi động máy chủ nút của bạn và chạy thử nghiệm selen bạn againsts nó.
  4. nếu bạn chạy trong localhost thì bạn có thể goto /coverage (hoặc nếu bạn đã thay đổi nó từ ví dụ github thay đổi nó ở đây) và nhận được thông tin bảo hiểm của bạn.

Đọc github readme để biết thêm chi tiết.

+0

Tôi khá tò mò muốn biết nếu có cách nào để hợp nhất kết quả kiểm tra trên nhiều bộ kiểm tra khác nhau. Trong khi thử nghiệm API, tôi sẽ nâng cấp máy chủ Node của mình với các thông số khác nhau trong các thử nghiệm khác nhau để tấn công tất cả các trường hợp cạnh. – sakovias

2

Như đã đề cập trong một trong những ý kiến, istanbul là thật sự tốt đẹp, rất chung chung, công cụ bảo hiểm. Nó hoạt động như một người trung gian giữa quá trình nút và các kịch bản lệnh của bạn, miễn là bạn đang thực thi một cái gì đó trong thời gian chạy nút, nó sẽ làm những gì bạn muốn. Tôi không chắc chắn làm thế nào bạn đang chạy thử nghiệm selen của bạn, nhưng tôi chạy mocha qua nó như vậy:

node ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- test/*-test.js 
#or simply: 
./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- test/*-test.js 

Mặc dù mocha thường chạy như "lệnh" riêng của mình, nó có thể "ăn" vào istanbul và bảo hiểm được in ra theo cách đó. Vì vậy, trong trường hợp của bạn, bất kỳ lệnh nào bạn sử dụng để chạy kiểm tra lối vào trong nút/selen có thể được chạy ở istanbul. Như tôi đã nói, đây là một quá trình rất chung chung có thể được áp dụng cho bất kỳ thứ gì chạy trong node.js.

Bây giờ tôi không thực sự có kinh nghiệm với Selenium nhưng những gì tôi biết rằng nó là một chút Rube Goldberg system với nhiều quá trình kết nối (một số khả năng trên các máy khác nhau). Nếu bạn đang tìm kiếm một cái gì đó để nắm bắt cả hai phía trước kết thúc, phụ trợ, và mã kiểm tra (hoặc mã frontend chạy trong trình duyệt, phục vụ từ mã backend) trong một dòng, tôi không chắc chắn tồn tại ("frontend application viết bằng NodeJS" là những gì quan trọng tôi vào điều này).

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