ykt*_*too 5 selenium maven node.js angularjs protractor
我们开发了一个Web应用程序,它在后端使用Java,在Angular中使用UI,使用Maven作为构建系统.
我一直在尝试使用Protractor设置自动集成测试,并且在加载Googling/StackOverflowing之后仍然无法弄清楚如何实现端到端配置.
我已经尝试使用frontend-maven-plugin来处理Node.js和NPM安装,但由于我们是在公司防火墙后面,所以似乎无法直接下载任何东西.它可以从我们的Artifactory下载Node但是在NPM下载时失败了(我不明白为什么它甚至下载它因为它是Node包的一部分).无论如何,我放弃了这个想法,并决定使用本地安装的Node.
启动/停止用于e2e测试的Tomcat实例可以很好地处理
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>${tomcat.manager.url}</url>
<path>/</path>
<server>Tomcat</server>
</configuration>
<executions>
<!-- Starting Tomcat -->
<execution>
<id>start-tomcat</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<!-- Fork the process, otherwise the build will be blocked by the running Tomcat -->
<fork>true</fork>
<port>${tomcat.port}</port>
<systemProperties>
<!-- We want to use the 'e2e' profile for integration testing -->
<spring.profiles.active>e2e</spring.profiles.active>
</systemProperties>
</configuration>
</execution>
<!-- Stopping Tomcat -->
<execution>
<id>stop-tomcat</id>
<phase>post-integration-test</phase>
<goals>
<goal>shutdown</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我设法启动WebDriver,但问题是它阻止了任何进一步的执行:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<!-- Start webdriver -->
<execution>
<id>start-webdriver</id>
<phase>pre-integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>webdriver-manager</executable>
<arguments>
<argument>start</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
鉴于安装了Node.js并且WebDriver正在运行,这应该不是问题.但由于我无法启动WebDriver以便继续执行,因此会被阻止.
有关WebDriver如何管理(启动/停止)的任何建议?
添加directConnect: true到 Protractor 配置文件可以解决启动/停止 WebDriver 的问题(如 Nick 所建议)。在这种情况下,必须从 POM 中删除对 WebDriver 的任何显式控制。
可用参数在参考配置文件中有详细说明。
| 归档时间: |
|
| 查看次数: |
2782 次 |
| 最近记录: |