Спасибо за советы.
А вы не вышлите понятную для меня ссылку с инструкциями как это все сделать? (не судите строго, только начинаю…) - пока я только установил Git под Windows.
На сейчас я добился запуска тестов со связкой Maven+TestNG (с использованием ReportNG)+WebDriver+Java в среде разработки.
Пушите свой код в репозиторий, берете свой фетч линк, выглядеть он будет примерно так:
git@bitbucket.org:user/repo.git
В настройках джоба есть раздел - вершен контролс, там выбираете гит, указываете свой фетч линк, указываете ssh ключи, который вам необходимо будет сгенерить, и публичный ключ добавить в свой ак на гитхабе/битбакете,
желательно ключи не парольте, так как у дженкинса были траблы с запаролеными ssh ключами.
В принципе это вся несложная процедура.
Что поразумеваете под запушить свой код в репозиторий: что именно туда нужно закидывать?, - весь проект, который у меня лежит локально на диске или определенные только файлы?
П.С: создал репозиторий на github, слил его так же локально на машину, добавил для теста файлик - все ок, синхронизация успешна. В Jenkins установил плагин Git, фетч линк есть, ключи тоже сделал.
В самом Jenkins нужно же оставлять те настройки, которые я приложил на скринах (путь к POM файлу; JDK и MAVEN)?
pom.xml
src/main/java
src/test/java
JDK и Maven настраиваются на уровне глобальных пропертей Jenkins.
Вам надо создать Maven-based job и указать root pom относительно workspace’a джинкинса. Не забывайте, что Jenkins вытащит сорсы из гита и положит проект к себе в workspace. Т.е. абсолютный путь тут не нужен.
ребята спасибо, получилось, иду на правильном пути…
Но есть один момент, сборка не совсем успешная выходит, т.к. не находит файлов почему то. Вот полный лог из Jenkins консоли:
Started by user anonymous
Building in workspace C:\Program Files (x86)\Jenkins\workspace\Test1
> git.exe rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git.exe config remote.origin.url git@github.com:sirj77/testJabra1.git # timeout=10
Fetching upstream changes from git@github.com:sirj77/testJabra1.git
> git.exe --version # timeout=10
using GIT_SSH to set credentials
> git.exe fetch --tags --progress git@github.com:sirj77/testJabra1.git +refs/heads/*:refs/remotes/origin/*
> git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
> git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10
Checking out Revision cf59a9c8b7b9c39954a1d2b70e8bed3a954f1921 (refs/remotes/origin/master)
> git.exe config core.sparsecheckout # timeout=10
> git.exe checkout -f cf59a9c8b7b9c39954a1d2b70e8bed3a954f1921
> git.exe rev-list aba36eed824c448ba66e61048b808d8903e2d0d7 # timeout=10
Parsing POMs
[Test1] $ "C:\Program Files\Java\jdk1.7.0_51/bin/java" -cp "C:\Program Files (x86)\Jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-agent-1.5.jar;D:\work\Eclipse\workspace\apache-maven-3.0.5-bin\apache-maven-3.0.5\boot\plexus-classworlds-2.4.jar" org.jvnet.hudson.maven3.agent.Maven3Main D:\work\Eclipse\workspace\apache-maven-3.0.5-bin\apache-maven-3.0.5 "C:\Program Files (x86)\Jenkins\war\WEB-INF\lib\remoting-2.48.jar" "C:\Program Files (x86)\Jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-1.5.jar" "C:\Program Files (x86)\Jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.5.jar" 50499
<===[JENKINS REMOTING CAPACITY]===>channel started
Executing Maven: -B -f C:\Program Files (x86)\Jenkins\workspace\Test1\pom.xml clean test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ProjMaven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.testng:testng:jar:5.14.3 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.testng:testng:jar:5.14.4 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.testng:testng:jar:5.14.5 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ JabraProjectNew ---
[INFO] Deleting C:\Program Files (x86)\Jenkins\workspace\Test1\target
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ JabraProjectNew ---
[debug] execute contextualize
[WARNING] Using platform encoding (Cp1251 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Program Files (x86)\Jenkins\workspace\Test1\src\main\resources
[INFO]
**[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ JabraProjectNew ---
[INFO] No sources to compile**
[INFO]
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ JabraProjectNew ---
[debug] execute contextualize
[WARNING] Using platform encoding (Cp1251 actually) to copy filtered resources, i.e. build is platform dependent!
**[INFO] skip non existing resourceDirectory C:\Program Files (x86)\Jenkins\workspace\Test1\src\test\resources**
[INFO]
**[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ JabraProjectNew ---
[INFO] No sources to compile**
[INFO]
[INFO] --- maven-surefire-plugin:2.5:test (default-test) @ JabraProjectNew ---
**[INFO] No tests to run.**
[JENKINS] Recording test results
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.013s
[INFO] Finished at: Wed Dec 03 13:04:47 EET 2014
[INFO] Final Memory: 18M/176M
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving C:\Program Files (x86)\Jenkins\workspace\Test1\pom.xml to JabraProjectNew/JabraProjectNew/0.0.1-SNAPSHOT/JabraProjectNew-0.0.1-SNAPSHOT.pom
channel stopped
Finished: SUCCESS
Может я как-то неправильно закинул файлы на Гит? (там лежит в корне пом файл и две папки - название_папки_Tests и название_папки_Pages, в которых размещено по одному джава класу - соотв. класс для тестов и класс с логикой; пробовал я так же просто закинуть эти два джава класа в корень на Гит - аналогично).
Прочитайте про стандартную иерархию каталогов Maven проекта, и пока вы только начинаете все осваивать - старайтесь ее придерживатся.
Под гит вы должны добавить всю папку проекта, который вы создали в своей IDE. IntellijIDEA например сама добавит свои папки настроек воркспейса в gitignore, но лучше за этим проследить.
В итоге, в вашей папке с проектом под готом должно лежать следующее
pom.xml
src
Пишете код - делаете коммиты - делаете пушите - запускаете джоб - дженкинс стягивает с гита файлы - и кладет их в специально созданный для этого билда воркспейс - далее отдает команду Maven’у мавен относительно этого воркспейса сразу видит pom.xml и начинает выполнение.
Я опять натыкаюсь на ту же проблему, что и ранее (при условии, что в Гит закинуты в папку с проектом: pom.xml, src (src - > main -> java -> джава класс; src - > test -> java -> джава класс):
Started by user anonymous
Building in workspace C:\Program Files (x86)\Jenkins\workspace\Test1
> git.exe rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git.exe config remote.origin.url git@github.com:sirj77/testJabra1.git # timeout=10
Fetching upstream changes from git@github.com:sirj77/testJabra1.git
> git.exe --version # timeout=10
using GIT_SSH to set credentials
> git.exe fetch --tags --progress git@github.com:sirj77/testJabra1.git +refs/heads/*:refs/remotes/origin/*
> git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
> git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10
Checking out Revision 03b29d6c1453bece1929ba168564f5dbf21d1e6d (refs/remotes/origin/master)
> git.exe config core.sparsecheckout # timeout=10
> git.exe checkout -f 03b29d6c1453bece1929ba168564f5dbf21d1e6d
> git.exe rev-list cf59a9c8b7b9c39954a1d2b70e8bed3a954f1921 # timeout=10
Parsing POMs
[Test1] $ "C:\Program Files\Java\jdk1.7.0_51/bin/java" -cp "C:\Program Files (x86)\Jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-agent-1.5.jar;D:\work\Eclipse\workspace\apache-maven-3.0.5-bin\apache-maven-3.0.5\boot\plexus-classworlds-2.4.jar" org.jvnet.hudson.maven3.agent.Maven3Main D:\work\Eclipse\workspace\apache-maven-3.0.5-bin\apache-maven-3.0.5 "C:\Program Files (x86)\Jenkins\war\WEB-INF\lib\remoting-2.48.jar" "C:\Program Files (x86)\Jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-1.5.jar" "C:\Program Files (x86)\Jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.5.jar" 52798
<===[JENKINS REMOTING CAPACITY]===>channel started
Executing Maven: -B -f C:\Program Files (x86)\Jenkins\workspace\Test1\pom.xml clean test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ProjMaven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.testng:testng:jar:5.14.3 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.testng:testng:jar:5.14.4 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.testng:testng:jar:5.14.5 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ JabraProjectNew ---
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ JabraProjectNew ---
[debug] execute contextualize
[WARNING] Using platform encoding (Cp1251 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Program Files (x86)\Jenkins\workspace\Test1\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ JabraProjectNew ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1251, i.e. build is platform dependent!
[INFO] Compiling 2 source files to C:\Program Files (x86)\Jenkins\workspace\Test1\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Program Files (x86)/Jenkins/workspace/Test1/src/test/java/PurchaseJabraSolemateMaxTest.java:[3,25] package org.testng does not exist
[ERROR] /C:/Program Files (x86)/Jenkins/workspace/Test1/src/test/java/PurchaseJabraSolemateMaxTest.java:[3,1] static import only from classes and interfaces
[ERROR] /C:/Program Files (x86)/Jenkins/workspace/Test1/src/test/java/PurchaseJabraSolemateMaxTest.java:[6,30] package org.testng.annotations does not exist
[ERROR] /C:/Program Files (x86)/Jenkins/workspace/Test1/src/test/java/PurchaseJabraSolemateMaxTest.java:[7,30] package org.testng.annotations does not exist
[ERROR] /C:/Program Files (x86)/Jenkins/workspace/Test1/src/test/java/PurchaseJabraSolemateMaxTest.java:[19,10] cannot find symbol
symbol: class Test
location: class test.java.MusicCategoryTests.PurchaseJabraSolemateMaxTest
........................
[ERROR] /C:/Program Files (x86)/Jenkins/workspace/Test1/src/test/java/PurchaseJabraSolemateMaxTest.java:[125,17] cannot find symbol
symbol: method assertEquals(java.lang.String,java.lang.String)
location: class test.java.MusicCategoryTests.PurchaseJabraSolemateMaxTest
[INFO] 23 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.631s
[INFO] Finished at: Wed Dec 03 17:41:20 EET 2014
[INFO] Final Memory: 24M/173M
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project JabraProjectNew: Compilation failure: Compilation failure:
[ERROR] /C:/Program Files (x86)/Jenkins/workspace/Test1/src/test/java/PurchaseJabraSolemateMaxTest.java:[3,25] package org.testng does not exist
Вроде все очевидно. Проблемы с определением testng. Причем, оно ссылается на какую-то древнюю версию. У вас вообще локально тесты компилируются via maven? И зачем вам reportng, если вы не подключаете его листенеры? Поубирайте test scope отовсюду. Я понимаю конечно, что копипаст - наше все, но он далеко не всегда работает.
Спасибо большое! Вышло. Тесты локально у меня компилились. ReportNG как раз я хотел использовать, листенеры я подключал. Как вы и сказали, убрал везде test scope. И еще раскоментил тег exclusion и закоментил suiteXmlFiles, вышло все удачно, видимо из-за этого и были проблемы, вот ПОМ:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>JabraProjectNew</groupId>
<artifactId>JabraProjectNew</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ProjMaven</name>
<repositories>
<repository>
<id>java-net</id>
<url>http://download.java.net/maven/2</url>
</repository>
</repositories>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<inherited>true</inherited>
<configuration>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
<property>
<name>listener</name>
<value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter</value>
</property>
</properties>
<workingDirectory>target/</workingDirectory>
<forkMode>always</forkMode>
<!-- <suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles> -->
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.4</version>
<!-- <scope>test</scope> -->
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
<!-- <classifier>test-sources</classifier> -->
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.8</version>
<!-- <scope>test</scope> -->
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.44.0</version>
</dependency>
<dependency>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.4</version>
<!-- <scope>test</scope> -->
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<!-- <dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
<classifier>tests</classifier>
</dependency> -->
</dependencies>
</project>
Единственное еще остались ворнинги, которые не влияют на успешность сборки, решения нашел, н опока не помогло избавиться от них:
- [WARNING] Using platform encoding (Cp1251 actually)…
- log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See Apache log4j 1.2 - Frequently Asked Technical Questions for more info.
Первый ворнинг решается добавлением проперти с кодировкой.
Остальное связано с ненастроенным log4j.
П.С. Для “спасибо” есть спец. кнопка.
Подскажите пожалуйста, прикрутил Allure, а в отчете пусто в чем проблема?
Установил плагин, путь указал 08.28.2018-17.28.55
А еще, когда запускаю тесты в jenkins, почему у меня браузер локально не открывается и не вижу тесты?