t.me/atinfo_chat Telegram группа по автоматизации тестирования

Разбираемся в запуске тестов в Jenkins (+Maven +TestNG +WebDriver на Java) или туториал новичка

jenkins
testng
webdriver
java
maven
Теги: #<Tag:0x00007f9c4d101b98> #<Tag:0x00007f9c4d1019e0> #<Tag:0x00007f9c4d101670> #<Tag:0x00007f9c4d101300> #<Tag:0x00007f9c4d1010d0>

(ivan_ochc) #41

после компиляции *.class файл с классом LoginTest в target/classes не появился.

после запуска теста создалась папка target\test-classes, в которой разместился LoginTest.

Тесты не запускаются. Загружается браузер и вылетает ексепшн.


(mamax) #42

привет всем!
скиньте ссилочку на  m2e плагин для екліпса


(ivan_ochc) #43

Через Eclipse: Help\Install New Software - в поиске введи m2e.


(ivan_ochc) #44

Мистика, после рестарта компьютера перестал работать maven:

C:\Documents and Settings…>mvn version
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

Переменные среды на своих местах. Никаких изменений не вносилось.

Теперь пишет такую ошибку:

mvn version
 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 36.547s
[INFO] Finished at: Mon Jan 14 12:31:30 EET 2013
[INFO] Final Memory: 15M/36M
[INFO] ------------------------------------------------------------------------
 
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ----------
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.125s
[INFO] Finished at: Mon Jan 14 12:31:36 EET 2013
[INFO] Final Memory: 2M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Unknown lifecycle phase "version". You must specify a valid lifecycle ph
ase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-
artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate
, initialize, generate-sources, process-sources, generate-resources, process-res
ources, compile, process-classes, generate-test-sources, process-test-sources, g
enerate-test-resources, process-test-resources, test-compile, process-test-class
es, test, prepare-package, package, pre-integration-test, integration-test, post
-integration-test, verify, install, deploy, pre-site, site, post-site, site-depl
oy, pre-clean, clean, post-clean. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhase
NotFoundException

(streLer) #45

Это проблема java . обновите ее, там какая то проблема с безопасностью была обнаружена и выпустили срочный апдейт, теперь ни одно приложение использующее жаву старой версии не заработает) 


(ivan_ochc) #46

Обновление не помогло. mvn version не работает.

Также осталась основная проблема. Не получается устранить.

Cannot instantiate class com.----.test.LoginTest

(abinet) #47

Немного не понятно чего вы хотите добиться, но попробуйте

mvn -version

(ivan_ochc) #48

Я хочу добиться запуска тестов через maven, а информация о версии - уже второстепенный вопрос. Кстати, вы, по идеи, правы. Скорей всего по невнимательности не вводил "-".


(abinet) #49

Так а что конкретно не получается? Не находит тест класс? Пути в target папке совпадают с package  теста?


(ivan_ochc) #50

Как проверить, что совпадают?

C:\Documents and Settings\----\Мои документы\ec\AutomatTest\target\test-classes\com\-----\test

C:\Documents and Settings\----\Мои документы\ec\AutomatTest\src\test\java\com\----\test

(Виктория) #51

Здравствyите, y меня возникла одна проблема, возможно вы подскажите. Как сделать так чтобы при запуске тестов с Jenkins обновлялся testing-result.xml? На данныи момент результаты туда записиваются Только когда я запускаю тест из Eclipce как тестнг


(Mykhailo Poliarush) #52

Так а как вы запускаете ваши тесты на jenkins? Если вы запускаете через maven c подключением правильных зависимостей и плагинов, то результаты должны автоматически генерироваться.


(Виктория) #53

да, запускаю тесты через Maven и Jenkins все нормально запускается но фаил с отчетом не обновляется, success. Тоже самое происходит когда я запускаю тест из eclipse при помоши мавен тест - фаил репорт не обновляется. в чем может быть проблема?


(Виктория) #54

так, сама разобралась
я искала их в test-out папке, а оказывается мавен их кладёт в target\surefire-reports
сорри за беспокойство


(Sergey_Kot) #56

Добрый день всем!

Создал тесты все как описано в данной теме. Но наткнулся на проблему при запуске тестов из Jenkins. Все, что сделано до Jenkins - все работает, проект собирается и тесты выполняются отлично!
В данной теме вроде писали о подобной проблеме, но я не нашел ответа для себя как это исправить.
Краткая суть проблемы: после настройки Jenkins и создании джоба, вываливаются ошибки типа (полный скрин ошибки, а так же настроек Jenkins приложил):

[INFO] Compiling 2 source files to D:\work\Eclipse\workspace\JabraProjectNew\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /D:/work/Eclipse/workspace/JabraProjectNew/src/test/java/MusicCategoryTests/PurchaseJabraSolemateMaxTest.java:[3,25] package org.testng does not exist
[ERROR] /D:/work/Eclipse/workspace/JabraProjectNew/src/test/java/MusicCategoryTests/PurchaseJabraSolemateMaxTest.java:[3,1] static import only from classes and interfaces
[ERROR] /D:/work/Eclipse/workspace/JabraProjectNew/src/test/java/MusicCategoryTests/PurchaseJabraSolemateMaxTest.java:[6,30] package org.testng.annotations does not exist
[ERROR] /D:/work/Eclipse/workspace/JabraProjectNew/src/test/java/MusicCategoryTests/PurchaseJabraSolemateMaxTest.java:[7,30] package org.testng.annotations does not exist
[ERROR] /D:/work/Eclipse/workspace/JabraProjectNew/src/test/java/MusicCategoryTests/PurchaseJabraSolemateMaxTest.java:[19,10] cannot find symbol
symbol: class Test
location: class test.java.MusicCategoryTests.PurchaseJabraSolemateMaxTest

Самое главное то, что после сборки и получении ошибки - тесты перестают работать даже в среде Еклипс - неважно как запускать (или просто через TestNG или используя Maven).
Помогите, пожалуйста, разобраться что не так я делаю. Огромное спасибо!



(Максим Малунов) #57

Имхо что-то связанное с порядком компиляции файлов.

pom покажите .


(heartwilltell) #58

Положите файлы под гит, надежней же будет, потом настройте чакаут, и указывайте пути относительно проекта, с полными вечно лажа.
Зачем вообще локально всю эту лажу держать - создать гит репозиторий в гитхаб или битбакет это нынче сложно? Или потом в проекте на работе тоже будете из папки эклипса тесты собирать?
Да и дженкинс поднимать на своей тачке это как-то странно, ну уж если совсем нету ресурсов, хотя в таком случае лучше уже в виртуалбоксе развернуть образ и держать все это там. Стало ненужно - грохнул и все, и своя ось на тачке без лишнего мусора будет.

Вот же - /D:/work/Eclipse/workspace/JabraProjectNew/src/test/java/MusicCategoryTests/PurchaseJabraSolemateMaxTest.java:[3,25] package org.testng does not exist

Обратите внимание на слеш в самом начале пути, и на все остальные слеши, разве под виндой в адресной строке они в эту сторону стоят :smiley:


(Sergey_Kot) #59
<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>
  <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.18</version>
  		<inherited>true</inherited>
  		<configuration>
         <suiteXmlFiles>
           <suiteXmlFile>testng.xml</suiteXmlFile>
         </suiteXmlFiles>
       </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
  	<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>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>
  </dependencies>
</project>

(Sergey_Kot) #60

Согласен, совсем странно и неверно. Но я то ведь явно нигде не указываю эти пути с неправильными слешами. Не совсем понимаю откуда оно гребет это и где исправить.


(heartwilltell) #61

Копайте настройки дженкинса, джобы. Старайтесь избегать полных путей, выносите пути в системные переменные, например зачем явно указывать путь к домашней директории мавена, когда можно вынести его в M2_HOME который дженкинс прекрасно подхватит.

Настройте для данного джоба чекаут из гита - таким образом когда дженкинс стянет все файлы - он сам создаст необходимую структуру директорий и все туда окуратно сложит. И путь к pom.xml должен выглядеть не длиннее чем pom.xml