2014-07-22 16 views
5

Tôi muốn ẩn thông số kỹ thuật hoa nhài đã tắt khi chạy thử nghiệm đã chọn. Tôi sẽ có rất nhiều bài kiểm tra, vì vậy tôi không muốn cuộn xuống sau mỗi lần làm mới để đạt được các bài kiểm tra ở dưới cùng.JavaScript, Jasmine, ẩn thông số kỹ thuật hoa nhài bị vô hiệu hóa

Có tùy chọn nào trong hoa nhài cho phép không? Tôi đã đi qua các tài liệu nhưng không tìm thấy bất cứ điều gì.

+1

Tôi muốn làm như vậy. Phiên bản 1.3 sẽ ẩn các thông số kỹ thuật không được chạy. –

Trả lời

3

Đây là một quyết định thiết kế bởi then chốt như tài liệu bởi sự cố này.

https://github.com/pivotal/jasmine/issues/510

Đây là việc sửa chữa từ một bình luận trong vấn đề này.

Trong nhài-html.js, thêm một chức năng để xác định đệ quy nếu một nút kết quả có bất kỳ thông số kỹ thuật hoạt động:

function hasActiveSpec(resultNode) { 
    if (resultNode.type == "spec" && resultNode.result.status != "disabled") { 
    return true; 
    } 

    if (resultNode.type == 'suite') { 
    for (var i = 0, j = resultNode.children.length; i < j; i++) { 
     if (hasActiveSpec(resultNode.children[i])) { 
     return true; 
     } 
    } 
    } 
} 

Sau đó, trong hàm summaryList, chỉ cần chạy bộ lọc cho dãy:

// ... 
var resultNode = resultsTree.children[i]; 
if (resultNode.type == "suite") { 
    // Don't display inactive suites 
    if (!hasActiveSpec(resultNode)) { 
    continue; 
    } 

    // var suiteListNode = ... 
    // ... 
} 
0

Taken từ trang giới thiệu hoa nhài ...

Suites và thông số kỹ thuật có thể được vô hiệu hóa với xdescribe và xit chức năng, tương ứng. Các bộ và bất kỳ thông số kỹ thuật nào bên trong chúng đều bị bỏ qua khi chạy và do đó kết quả của chúng sẽ không xuất hiện trong kết quả.

+0

Tôi tin rằng anh ấy có nghĩa là họ bị bỏ qua bằng chuỗi truy vấn. http: // localhost/Tests? spec = Nhật ký –

+1

Ví dụ: http://jasmine.github.io/2.0/introduction.html?spec=A%20spec bạn sẽ thấy tất cả các thông số được hiển thị mặc dù chỉ một số được chạy . –

+0

Tôi thấy "** Ran 9 trong số 70 thông số kỹ thuật - chạy tất cả 9 thông số kỹ thuật, 0 lỗi **" và dường như chỉ có 9 trong số đó, bạn có thể làm rõ những gì tôi đang tìm kiếm ở đây không bình thường? – Mike

0

Tôi không tìm cách ẩn một bài kiểm tra đang chờ xử lý. Nhưng bạn có thể thêm kiểu tiếp theo vào bài kiểm tra của mình để ẩn bài kiểm tra đang chờ xử lý.

.pending { 
    display: none; 
} 

Bạn có thể thấy một ví dụ làm việc here

1

Nếu bạn không muốn sửa đổi mã nguồn Jasmine, bạn cũng có thể thêm một cái móc như thế này (ví dụ của tôi giả jQuery là hiện tại):

jasmine.getEnv().addReporter({ 
    jasmineDone: function() { 
     $(".disabled").parents(".suite").hide(); 
    } 
}); 

Xem http://jasmine.github.io/2.1/custom_reporter.html để biết thêm thông tin.

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