2013-03-30 26 views
11

Tôi đang sử dụng QUnit để kiểm tra JavaScript của mình. Tôi cũng đang sử dụng requirejs. Tôi có mã kiểm tra mà trông như thế này:QUnit autostart

QUnit.config.autostart = false; 

require(['tests/tests'], function() { 
    QUnit.start(); //Tests loaded, run tests 
}); 

này hoạt động tuyệt vời trong FF (19.0.2 khi nó xảy ra) nhưng trong cả Chrome (27) và IE (10), tôi nhận được một lỗi QUnit:

"pushFailure() khẳng định bên ngoài bối cảnh thử nghiệm"

Hóa ra rằng tôi không cần các cuộc gọi đến QUnit.start trong IE và Chrome. Bất kỳ ai khác nhìn thấy điều này hoặc có bất kỳ đề xuất nào về lý do tại sao?

Trả lời

13

Nếu bất kỳ ai khác truy cập vấn đề này, tôi đã tìm thấy giải pháp. Theo kinh nghiệm, cả Chrome và IE đều kích hoạt sự kiện tải của QUnit ngay khi QUnit được truy cập và các cuộc gọi tải bắt đầu. Những gì tôi đã làm điều này là:

<script type="text/javascript" src="qunit-1.11.0.js"></script> 
<script type="text/javascript"> 
    QUnit.config.autostart = false; 
</script> 
    <script type="text/javascript" data-main="main" src="require.js"></script> 

Vì vậy, tải QUnit, thiết lập tự khởi động và sau đó tải requirejs

Đây là Messier hơn thiết autostart = false trong main.js nhưng nó có lợi ích của làm việc :)

+0

Điều này cũng có vẻ là một sửa chữa tốt: http://stackoverflow.com/questions/15921707/qunit-unit-test-error-on-jquery-ajax –

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