Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 使用带量角器的角度材料进行E2E测试是否存在任何问题?_Angularjs_Protractor_Angular Material - Fatal编程技术网

Angularjs 使用带量角器的角度材料进行E2E测试是否存在任何问题?

Angularjs 使用带量角器的角度材料进行E2E测试是否存在任何问题?,angularjs,protractor,angular-material,Angularjs,Protractor,Angular Material,在量角器常见问题解答中,我遇到了间歇性超时,这被归咎于使用$timeout进行轮询(又名:waitForAngular timeout)。我想知道,如果不是投票,它是否也会失败。对于我的团队来说,随着我们对角材料组件的依赖,它变得更加清晰。他们经常使用$timeout(func,0)进行动画交互。 这个问题类似于,但重点是角材料和量角器之间可能存在的问题。 我真的很想知道那些大量使用角材料和量角器的人,如果遇到这些问题,他们是如何处理的 有趣的是,我在量角器和角度材料github站点中都没有看到

在量角器常见问题解答中,我遇到了间歇性超时,这被归咎于使用$timeout进行轮询(又名:waitForAngular timeout)。我想知道,如果不是投票,它是否也会失败。对于我的团队来说,随着我们对角材料组件的依赖,它变得更加清晰。他们经常使用$timeout(func,0)进行动画交互。 这个问题类似于,但重点是角材料和量角器之间可能存在的问题。 我真的很想知道那些大量使用角材料和量角器的人,如果遇到这些问题,他们是如何处理的


有趣的是,我在量角器和角度材料github站点中都没有看到任何对彼此能力的利用。由于它们都是来自谷歌同一组的角度库,@juliemr和量角器组可以与@ThomasBurleson和材料组进行对话,提出综合用例和使用量角器对角度材料进行E2E测试,以解决这些问题。

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

browser.ignoreSynchronization = false;
您可以这样做以加快测试速度,并可能有助于消除超时问题,在您的dragrator-conf.js文件中添加以下代码:


也许你应该看看这个。

我想补充一点,禁用ngAnimate可能还不够。您可能还必须通过在量角器“onPrepare”选项中注入CSS来禁用角度材质的CSS动画。()。

不完全正确,答案是肯定的,但在动画方面,我成功地使用了带有预期条件的显式等待()。它确实减少了此类问题的发生,但它们仍然断断续续地发生。你能提供一个具体的例子吗?(HTML和遇到问题的测试的一个片段?)。您希望在某一点检查对话框是否已关闭。在我们使用XVFB运行Ubuntu的CI机器上,大约有三分之一的时间会出现故障。在我的Windows机器上,它可能会在10种情况中的1种情况下间歇性地失败。@GabrielKohen-您是否找到了一种方法,对基于角度材质的应用程序进行e2e测试?我们的CI服务器也面临间歇性测试失败,没有任何实际模式。我们还禁用了动画。ignoreSynchronization似乎会严重扰乱测试,因为它似乎是量角器团队打算使用它的方式。我已经禁用了动画,但在等待Angular的时候,测试仍然偶尔失败。无论我是直接连接还是通过Selenium运行,都会发生这种情况。您可以在答案中添加说明,并使用链接。我不确定是否理解您的评论。你的意思是我应该把链接的内容复制/引用到这里吗?
onPrepare: function() {
    var disableNgAnimate = function () {
        angular.module('disableNgAnimate', []).run(function($animate){
            $animate.enabled(false);
        });    
    },
    browser.addMockModule('disableNgAnimate', disableNgAnimate);
},