Как запустить тесты в Jenkins когда есть фреймоворк написаный в Intellij ide +TestNG+ Maven


#1

Добрый день подскажите пожалуйста или подтолкните куда гуглить
Есть тестовый фреймворк разработанный в Intellij IDE использована библиотечка TestNG .
Есть testng.xml в котором описаны классы которые хотим запускать.
Есть мавен в котором есть pom.xml в котором описаны разные профили и зависимости.
Но так как меня посадили на чужой компьютер, бывшего разработчика этого фреймоврка я кое-что обнаружил например

D:\project>echo %M2_HOME%
%M2_HOME%

это нормально ?? и еще

mvn test

выдает

mvn" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Моя задача запустить 1000 этих тестов на Jenkins например ночью что бы к утру они были прогнаны
Вопрос 1. Я так понимаю не настроен мавен ??
2. Создавать обычнй джоб в дженкинс или мавен ?
Буду очень рад советам
Спасибо


(Sergey Korol) #2
  • Maven'а либо вообще нет, либо не установлены переменные окружения.
  • Да, создавать maven job и настраивать точно также, как вы делали в IDE в плане build configuration.

#3

да переменные не были заданы точно исправил


#4

Скажите пожалуйста в чем может быть проблема ?? когда запустил собрать билд в женкинс получил сообщение

[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for prof:tests:jar:1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 1379, column 29
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building tests 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tests ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 31 resources
[INFO] Copying 31 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ tests ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tests ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Program Files (x86)\Jenkins\workspace\maven_first_package\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ tests ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ tests ---
[INFO] No tests to run.
[INFO] Surefire report directory: C:\Program Files (x86)\Jenkins\workspace\maven_first_package\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[JENKINS] Recording test results
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.729 s
[INFO] Finished at: 2015-07-07T17:06:18+03:00
[INFO] Final Memory: 17M/318M
[INFO] ------------------------------------------------------------------------
Ожидаю пока Jenkins закончит сбор данных
[JENKINS] Archiving C:\Program Files (x86)\Jenkins\workspace\maven_first_package\pom.xml to prof/tests/1.0-SNAPSHOT/tests-1.0-SNAPSHOT.pom
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project tests: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: There was an error in the forked process
[ERROR] org.testng.TestNGException:
[ERROR] Cannot find class in classpath: SMOKE_TEST_CHECK_LINK.SM_01_Test_Check_Link_By_Site_Map_XML
[ERROR] at org.testng.xml.XmlClass.loadClass(XmlClass.java:81)
[ERROR] at org.testng.xml.XmlClass.init(XmlClass.java:73)
[ERROR] at org.testng.xml.XmlClass.<init>(XmlClass.java:59)
[ERROR] at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:548)
[ERROR] at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
[ERROR] at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
[ERROR] at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:766)
[ERROR] at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
[ERROR] at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
[ERROR] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
[ERROR] at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
[ERROR] at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
[ERROR] at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
[ERROR] at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
[ERROR] at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
[ERROR] at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
[ERROR] at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
[ERROR] at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
[ERROR] at org.testng.xml.XMLParser.parse(XMLParser.java:39)
[ERROR] at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:17)
[ERROR] at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:10)
[ERROR] at org.testng.xml.Parser.parse(Parser.java:168)
[ERROR] at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:310)
[ERROR] at org.testng.TestNG.run(TestNG.java:1005)
[ERROR] at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:295)
[ERROR] at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:84)
[ERROR] at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:90)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[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 read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
channel stopped
Finished: FAILURE

в чем может быть проблема ведь с идее тесты запускаются


(Sergey Korol) #5

Все вроде предельно ясно.


#6

не могу понять ведь с идее они запускаются, а тут пишет что не может найти путь в чем причина ?


(Sergey Korol) #7

Ну тут нет экстрасенсов. Конфигурацию maven-surefire-plugin в студию. wink


#8

Вот мой конфиг

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>resources/testng.xml</suiteXmlFile>
            <suiteXmlFile>resources/prod_website_001_LINKS.xml</suiteXmlFile>
            <suiteXmlFile>resources/prod_website_002_LABELS.xml</suiteXmlFile>
        </suiteXmlFiles>
    </configuration>
</plugin>

resources это имя пекеджа


(Sergey Korol) #9

А мейвеновская структура каталогов соблюдена? resources - это каталог main / test ресурсов или просто рандомная директория внутри рута проекта? Как правило, подобного рода ресурсы помещают в специализированный выше упомянутый каталог, т.к. его содержимое автоматически помещается в classpath.

В случае с тестовыми ресурсами, в билд конфигурации можно дополнительно указать:

<resources>
    <resource>
        <directory>src/test/resources</directory>
    </resource>
</resources>

Еще бы взглянуть на содержимое самой xml, которая ругается на class not found.


#10

я думаю структура не сохранена потому что когда я создавал мавен проект в еклипс на убунту то она была не такая. Не давно я пришел в новую фирму и тут виндовс и интеледжи идее я еще спросил помню точно это мавен проект ?? мне сказали дааа так вот структура такая в папке проект

.idea
classes
logic
model
property
resources
target
tests
UI
pom.xml
tests.iml

(Sergey Korol) #11

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


#12

Да согласен просто меня обманули чуток мне сказали что это мавен проект просто у него такой вид в интелидж иде только что поговорил с этим человеком и расколол его ((