2015-01-05 13 views
7

Cách chính xác để đi về việc đăng xuất thông tin về các thử nghiệm bằng cách sử dụng khung vận tốc với Meteor là gì?Cách đăng nhập chính xác với Mocha/Velocity (thử nghiệm Meteor)?

Tôi có một số thử nghiệm mocha mà tôi muốn xuất một số giá trị từ, tôi đoán nó sẽ tốt nếu đầu ra có thể kết thúc trong phần nhật ký của cửa sổ tốc độ ... nhưng dường như không có là bất kỳ tài liệu nào ở bất kỳ đâu?

Trả lời

1

Tôi chưa thấy tài liệu được ghi.

Tôi không biết cách ghi nhật ký thư vào cửa sổ Tốc độ, mặc dù tôi không thích ý tưởng đăng nhập vào giao diện người dùng.

Những gì tôi đã làm được tạo ra một đối tượng Logger đơn giản bao bọc tất cả giao diện điều khiển của tôi. {{Method}} gọi và ngăn đăng nhập nếu process.env.IS_MIRROR. Điều đó sẽ chỉ xuất ra các thông báo khung kiểm tra trên thiết bị đầu cuối. Nếu tôi cần gỡ lỗi một thử nghiệm cụ thể, tôi kích hoạt đầu ra ghi nhật ký trong một thời gian trên Logger.

0

Đây là một bản hack khủng khiếp. Nó sẽ lộ ra một phương thức không được bảo vệ mà viết cho DB của bạn.

Nhưng nó hoạt động.

Tôi thực sự bực mình vì thiếu tính năng này vì vậy tôi đã đào sâu vào số Velocity code để tìm hiểu rằng họ có bộ sưu tập VelocityLogs có thể truy cập toàn cầu. Nhưng bạn cần phải truy cập nó từ sản xuất của bạn, không phải thử nghiệm, ví dụ để xem nó trong các phóng viên web. Vì vậy, sau đó nó đã cho tôi một thời gian tốt để có được Meteor CORS được kích hoạt, nhưng cuối cùng tôi đã quản lý - ngay cả đối với Firefox - để tạo một tuyến đường mới trong IronRouter đến POST thông điệp tường trình tới. (CORS có thể đẹp hơn với this suggestion - nhưng bạn thực sự không nên phơi bày điều này.)

Bạn cần phải meteor add http cho việc này.

Nơi ngoài của/kiểm tra:

if Meteor.isServer 
    Router.route 'log', -> 
    if @request.method is 'OPTIONS' 
     @response.setHeader 'Access-Control-Allow-Origin', '*' 
     @response.setHeader 'Access-Control-Allow-Methods', 'POST, OPTIONS' 
     @response.setHeader 'Access-Control-Max-Age', 1000 
     @response.setHeader 'Access-Control-Allow-Headers', 'origin, x-csrftoken, content-type, accept' 
     @response.end() 

     return 

    if @request.method is 'POST' 
     logEntry = @request.body 

     logEntry.level ?= 'unspecified' 
     logEntry.framework ?= 'log hack' 
     logEntry.timestamp ?= moment().format("HH:mm:ss.SSS") 

     _id = VelocityLogs.insert(logEntry) 

     @response.setHeader 'Access-Control-Allow-Origin', '*' 
     @response.end(_id) 

     return 

    , where: 'server' 

Trongtests/mocha/lib hoặc tương tự, như một chức năng tiện ích:

@log = (message, framework, level) -> 
    HTTP.post "http://localhost:3000/log", 
    data: { message: message, framework: framework, level: level} 
    (error) -> console.dir error 

Đối với kẻ thù ghét cà phê: coffeescript.org> TRY VỚI DOANH NGHIỆP> Dán mã để chuyển đổi> Nhận JavaScript cũ tốt của bạn.

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