Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.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
Angular 开发量角器测试的最佳实践是什么_Angular_Protractor_Angular Cli - Fatal编程技术网

Angular 开发量角器测试的最佳实践是什么

Angular 开发量角器测试的最佳实践是什么,angular,protractor,angular-cli,Angular,Protractor,Angular Cli,我正在为Angular 5应用程序(使用Angular CLI构建)构建量角器测试。我的问题是构建一个测试需要很多时间——每次运行nge2e时,我都需要等待应用程序编译完成。这种情况经常发生,因为我的代码中有很多错误的选择器 我觉得我做错了什么。一定有办法更快地进行量角器测试。。。我说得对吗?这完全正常。E2E测试不需要在每次提交时运行。 最好是在发布或标记之前运行它们。 一旦到位,您将只在代码发展时更改它们。 在我的项目中,通过80个测试大约需要3分钟。要跳过angular应用程序编译过程,请

我正在为Angular 5应用程序(使用Angular CLI构建)构建量角器测试。我的问题是构建一个测试需要很多时间——每次运行
nge2e
时,我都需要等待应用程序编译完成。这种情况经常发生,因为我的代码中有很多错误的选择器


我觉得我做错了什么。一定有办法更快地进行量角器测试。。。我说得对吗?

这完全正常。E2E测试不需要在每次提交时运行。
最好是在发布或标记之前运行它们。
一旦到位,您将只在代码发展时更改它们。

在我的项目中,通过80个测试大约需要3分钟。

要跳过angular应用程序编译过程,请将量角器安装为全局:

    npm install -g protractor
    webdriver-manager update
将应用程序作为正常服务ng serve并在项目文件夹中运行量角器,命令行:

    proctractor
您还可以在“脚本”部分修改文件package.json,添加行如下:

    "scripts": {
       ...
       "protractor": "protractor"
    },
然后,您可以在其他命令行提示符下运行量角器测试,如下所示:

    npm run protractor
此外:要运行与特定名称匹配的测试,您可以调用:

    protractor --grep "test name"
另外,如果您想对测试名称和套件名称更严格,可以使用
^
$
以及
--grep
选项,但您应该知道:套件名称和测试名称是用空格连接的。因此,要从不同套件运行特定测试,请按以下方式运行命令:

protractor --grep "^Suite name1 test name1$|^Suite name2 other test name2$"

在您拥有实时环境的情况下,如在运行的Web应用程序中,您可以设置量角器以针对实时应用程序运行。我的情况是,我永远不需要为编译后的应用程序提供服务和运行,因为我们有多个环境,而且我没有针对生产环境运行测试。在这种情况下,通常不需要花费任何时间来开发和运行测试

E2E测试通常比单元测试慢。如果您想避免在测试运行中启动应用程序,例如,如果您已经在运行
ng serve
,您可以看看如何运行。@jornsharpe-在文档中查看(我仍然不清楚),请您发布更详细的答案-这样会更清楚吗?如果您的问题是“我如何停止
ng e2e
为应用程序服务”,那在文件里。如果是“如何加快量角器测试速度”这句话太宽泛了,肯定需要一个有问题的测试。我的问题是:有没有办法在不编译代码的情况下运行e2e?呃,没有,应用程序必须运行在某个地方,才能对其运行浏览器测试。感谢您的回答,但我仍然认为,如果您可以让量角器运行得更快,会更好,因为所有其他angular cli工具(如live reload)都打算节省开发人员时间,因为量角器必须构建和启动应用程序,所以无法运行得更快。它将帮助您找到回归。您可以在Pmb分享您的测试吗?我尝试运行超过1的测试时遇到问题。提前谢谢这应该是选定的答案。