Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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
Node.js 在Node 8.x及更高版本中调试量角器测试_Node.js_Protractor - Fatal编程技术网

Node.js 在Node 8.x及更高版本中调试量角器测试

Node.js 在Node 8.x及更高版本中调试量角器测试,node.js,protractor,Node.js,Protractor,我已经找了一段时间了,我似乎找不到一个明确的答案 基本上,在编写量角器测试(使用节点8或更高版本)时,现在一切都必须是异步的/等待的,才能调试测试。这是正确的吗 作为一个测试,我将wait/async放在了我的一个测试上。为了能够调试,它几乎需要等待每一行。如果我漏了一行,它就不能正常调试。这使得编写和调试测试非常烦人 我只是错过了一些明显的东西,还是这真的是我需要做的 我发现下面的视频似乎表明这是必需的 是的,异步/等待是未来的发展方向。从中可以看出,节点8破坏了调试代码所需的大量工作。为了跟

我已经找了一段时间了,我似乎找不到一个明确的答案

基本上,在编写量角器测试(使用节点8或更高版本)时,现在一切都必须是异步的/等待的,才能调试测试。这是正确的吗

作为一个测试,我将wait/async放在了我的一个测试上。为了能够调试,它几乎需要等待每一行。如果我漏了一行,它就不能正常调试。这使得编写和调试测试非常烦人

我只是错过了一些明显的东西,还是这真的是我需要做的

我发现下面的视频似乎表明这是必需的


是的,异步/等待是未来的发展方向。从中可以看出,节点8破坏了调试代码所需的大量工作。为了跟上量角器的发展方向,您需要对所有现有测试进行重大修改。这很糟糕,但我会告诉你我的发现对你有帮助

听起来您需要做的第一件事是添加lint规则,它将告诉您缺少哪些等待。您甚至可以将其设置为只有您的e2e文件夹受此规则影响的位置,如果您不想更改整个应用程序,这会有所帮助

既然现在一切都是承诺,我也建议更换任何涉及承诺的
forEach
。虽然你认为它应该是连续的,但事实并非如此。几乎所有从浏览器返回的东西都是承诺,如果你的类型过时了,那么一些没有标记为承诺的东西无论如何都会被取消。在这种情况下,of循环的
是一个不错的替代品。为什么?
forEach
将同时启动循环中的每个承诺,导致WebDriver在您身上出错

当你这么做的时候,如果你还没有升级jasmine的话,你可能会想升级它。如果您还没有使用typescript 3.0,我发现“jasmine core”:“2.99.1”和“@types/jasmine”:“2.8.9”将告诉您何时您没有等待expect中的承诺。它还可以在您的expect中进行类型检查,这是旧版本的优势。这些都是非常具体的版本,接下来的版本似乎不适用于旧版本的typescript

最后,建议查看您的paragrator.conf并将每个
之前的、每个之后的等更改为异步,并等待其中的任何内容


我肯定忘记了一些事情,但这应该让您开始。

我个人发现使用
async/await
的规范更整洁、更容易调试。这还取决于您如何调试它。。。你的方法是什么?我通过WebStorm进行调试,它很好地支持新的调试系统。谢谢!我想找到任何能把事情安排得很好的东西!