2015-04-30 22 views
25

Tôi đã trải qua thời gian chờ liên tục bị đổ lỗi trong Câu hỏi thường gặp về thước đo về việc sử dụng $ timeout để bỏ phiếu (AKA: WaitForAngular timeout). Tôi tự hỏi nếu nó không cũng trong trường hợp nó không bỏ phiếu. Đối với nhóm của tôi, nó trở nên sáng hơn khi chúng ta dựa vào các thành phần Vật liệu góc. Chúng nặng về tương tác hoạt ảnh với việc sử dụng liên tục $ timeout (func, 0). Câu hỏi này tương tự như issue #29966301, nhưng tập trung vào một vấn đề có thể xảy ra giữa Vật liệu góc và Thước đo góc. Tôi thực sự quan tâm để biết làm thế nào folks mà rất nhiều sử dụng vật liệu góc và thước đo đối phó với các vấn đề như vậy nếu họ gặp phải ở tất cả.Có vấn đề gì khi sử dụng Vật liệu góc với Thước đo góc để kiểm tra E2E?

Điểm thú vị là tôi đã không nhìn thấy không trong các thước đo góc cạnh của Vật liệu góc cạnh và Vật liệu góc cạnh bất kỳ khả năng sử dụng nào của từng khả năng khác. Vì cả hai thư viện Angular đều đến từ cùng một nhóm trên Google, @juliemr và Protractor Gang có thể nói chuyện với @ThomasBurleson và nhóm Material để đưa ra các trường hợp sử dụng toàn diện và kiểm tra E2E cho Angular Material bằng Protractor để loại bỏ các vấn đề này .

+0

Không chính xác và trả lời, nhưng khi nói đến hoạt ảnh, tôi đã sử dụng thành công chờ đợi rõ ràng với các điều kiện dự kiến ​​(http://stackoverflow.com/a/29151849/771848). – alecxe

+0

Tôi thực sự đã bắt đầu sử dụng EC trên tất cả. Nó đã làm giảm sự xuất hiện của các vấn đề như vậy nhưng chúng vẫn xảy ra liên tục. –

+0

Bạn có thể cung cấp một ví dụ cụ thể không? (Một đoạn mã HTML và của bài kiểm tra đang gặp sự cố?) –

Trả lời

1

Vâng thước đo góc được thiết kế để kiểm tra góc, vì vậy nếu bạn đang sử dụng waitForAngular chức năng và trang web của bạn là góc bạn không nên sử dụng điều đó, bạn nên làm bài kiểm tra beforeEach sau:

browser.ignoreSynchronization = false; 

và bạn có thể làm điều này để làm các xét nghiệm của bạn nhanh hơn và có lẽ giúp loại bỏ các vấn đề thời gian chờ, trong hồ sơ protractor-conf.js bạn thêm mã này:

...

onPrepare: function() { 
    var disableNgAnimate = function() { 
     angular.module('disableNgAnimate', []).run(function($animate){ 
      $animate.enabled(false); 
     });  
    }, 
    browser.addMockModule('disableNgAnimate', disableNgAnimate); 
}, 

...

và có thể bạn nên kiểm tra điều này video.

+1

ignoreSynchronization dường như làm ồ ạt các bài kiểm tra vì nó dường như giống như cách mà nhóm Protractor dự định sử dụng. Tôi đã vô hiệu hóa các hình ảnh động và vẫn còn các thử nghiệm không thường xuyên không chờ đợi trên Angular. Nó xảy ra cho dù tôi đang chạy nó trong kết nối trực tiếp hoặc thông qua Selenium. –

1

Tôi sẽ thêm rằng vô hiệu hóa ngAnimate có thể không đủ. Bạn cũng có thể phải tắt hoạt ảnh CSS của Angular Material bằng cách tiêm CSS bên trong tùy chọn 'onPrepare' của thước đo góc. (How to disable animations in protractor for angular js application).

+0

bạn có thể thêm mô tả trong câu trả lời của mình, với liên kết. – Vikrant

+0

Không chắc tôi hiểu nhận xét của bạn. Bạn có nghĩa là tôi nên sao chép/trích dẫn nội dung của liên kết trên đó đến đây? – dhwang

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