使用角度材料和量角器进行E2E测试是否有任何问题?

Gab*_*hen 27 angularjs protractor angular-material

我一直在经历间歇性超时,这是在Protractor常见问题解答中指责使用$ timeout进行轮询(AKA:waitForAngular超时).我不知道在没有投票的情况下它是否也会失败.对于我的团队来说,因为我们依赖于Angular Material组件,所以它更加轻松.他们在动画交互方面很重要,并且经常使用$ timeout(func,0).这个问题类似于问题#29966301,但侧重于Angular Material和Protractor之间可能存在的问题.我真的很想知道那些大量使用Angular Material和Protractor的人如果遇到这些问题就会处理这些问题.

有趣的是,我没有在Protractor和Angular Material github网站上看到过对彼此功能的任何利用.由于它们都是来自Google同一组的Angular库,@ juliemr和Protractor Gang可以与@ThomasBurleson和Material团队讨论,使用Protractor为Angular Material提供全面的用例和E2E测试以清除这些问题.

小智 1

量角器设计用于测试角度,因此如果您使用 waitForAngular 函数并且您的网站是角度的,则不应使用它,您应该在每次测试之前执行以下操作:

browser.ignoreSynchronization = false;
Run Code Online (Sandbox Code Playgroud)

您可以这样做以使您的测试更快,并可能有助于消除超时问题,在您的 protractor-conf.js 文件中添加以下代码:

...

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

...

也许你应该看看这个视频