我有一个Java Web应用程序(Maven),我有一些Selenium测试。测试框架是Junit 4.x.
我也使用Jenkins进行CI。现在我的所有测试(集成+ selenium)都保存在项目的src / test文件夹下。(经典的maven结构)
由于Jenkins无法运行selenium测试(它没有配置为执行此操作 - 我在没有图形界面的Linux机器上运行,在这种情况下解决方案似乎有点笨拙,但我在考虑运行一个selenium服务器,以便我可以在Windows从机上运行所有这些测试)我必须手动“从执行中删除selenium测试”,否则我将有很多失败的测试。
我想要完成的是一个场景:
1.提交SVN
詹金斯创造了一个建筑
3.运行测试,如果没有问题,请转到下一步,否则,停止
4.将应用程序部署到应用程序服务器
5.在Jenkins中作为post build脚本运行针对该部署的selenium测试。
为了让这个运行,我必须将selenium测试提取到其他项目吗? (为了避免Jenkins运行此测试以及其他集成/单元测试)
答案 0 :(得分:0)
当您使用 Maven 时,您说kept under the src/test folder of the project
听起来只是 Perfecto 。
你在问题中没有提到为什么Jenkins cannot run selenium tests (it is not configured to do this)
。在你的问题的后面你已经提到过Run the tests
,假设你正在使用 TestNG ,这只是 Jenkins 的一步配置来执行 pom.xml Maven 将调用 * testng.xml ,如下所述:
Automated Test Suite
正确执行 TestNG Suite
和 Maven Test
。Manage Jenkins
- > Configure System
JDK -> JDK installations
并确保 JAVA_HOME
设置为 C:\path\to\jdk1.8.0_144
。取消选中 Install automatically
Maven -> Maven installations
并提供Name
MAVEN_HOME
& MAVEN_HOME
为 C:\path\to\apache-maven-3.3.3
。取消选中 Install automatically
JDK -> JDK installations
并确保Local Maven Repository
设为Default(~/.m2/repository)
。New Item
作为Maven project
。Build
部分,并提供 Root POM
作为pom.xml
的绝对路径,例如的 C:\Users\<user_name>\LearnAutmation\maven.jenkins\pom.xml
强> Goals and options
设为 clean install
testng.xml
和 \ProjectWorkSpace\src\main\resources\testng.xml
中移动 pom.xml
您必须提及 testng.xml
的位置,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
根据您的具体问题In order to have this running do I have to extract the selenium tests to other project ?
,答案为否。
Suites
Integration
和 Selenium
,则此设置是您的。Suites
中的任何一个,请将 Integration
和 Selenium
套件划分为不同的 TestNG Groups
并转动开启&amp; 关闭执行 TestNG Groups
。