TestNG запустить по клику Suite


(bobby2008) #1

Нужно собрать Jar-ник, который можно будет запустить по клику. В этом Jar-нике должы запуститься мой сьют, который прописан в testNG.xml. Т.е. по сути мне нужен запускатор моих тестов.

 

UPD даже не так, нужно сделать так, чтобы сьют можно было запустить с консоли.

Кто-то знает решение? Спасибо.


(zc84) #2

Батник в помощ

мой вариант

set CLASSPATH=./tests/jar.jar;./lib/testng-6.4.jar;./lib/selenium-server-standalone-2.21.0.jar;./lib/mail-1.4.jar%CLASSPATH%
java org.testng.TestNG ./conf/testng.xml

 

может у кого есть альтернатива?

 

к примеру столкнулся с проблемой след рода:

 

если пытаешься запускать батник тасками винды, отностительный путь не прокатывает, надо указывать абсолютный, что мне не оч нравиться. Понимаю что тут это не пришей к штанам рукав, но всё же:)


(bobby2008) #3

Тесты для этого должны быть в jar-формате?

Я не очень хорошо понимаю что значит ./tests/jar.jar; и ./lib/mail-1.4.jar%CLASSPATH%. Не могли бы Вы пояснить? Я вот как пытался запустить:

C:\Users\Oleksandr Moroz\workspace\Diploma1>java -jar testng.jar testng.xml
[TestNG] [ERROR]
Cannot find class in classpath: Tests.fotttest

C:\Users\Oleksandr Moroz\workspace\Diploma1>echo %classpath%
C:\Users\Oleksandr Moroz\workspace\Diploma1\bin;C:\Users\Oleksandr Moroz\workspa
ce\Diploma1\lib
 Вот древо файлов, не могли бы Вы подсказать ка мне правильно прописать класпас? Спасибо заранее.


(Mykhailo Poliarush) #4

для того чтобы не указывать абсолютный путь можно воспользоваться системной переменной %CD% которая возвращает полный путь к файлу, который вы запускаете


(Mykhailo Poliarush) #5

если вы хотите запускать через bat файл, то есть несколько способов

  • testng
  • ant
  • maven

запуск через ant - для этого нужно создать build.xml в корне вашего проекта, а потом просто можно запускать в консоли ant test

 

<?xml version="1.0" encoding="UTF-8"?>
<project>
 
<taskdef resource="testngtasks" classpath="testng.jar"/>
<target name="test">
<testng>
<classpath>
<pathelement location="selenium-server-standalone-2.21.0.jar"/>
      <pathelement location="bin"/>
</classpath>
<xmlfileset dir="." includes="testng.xml"/>
</testng>
</target>
</project>
 
второй вариант maven - для этого вам нужо создать pom.xml в корне вашего проекта и сделать bat файл, который просто будет запускать maven test
 
<?xml version="1.0" encoding="UTF-8"?>
<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>project</groupId>
        <artifactId>project</artifactId>
        <version>1.0</version>
        <dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.1.1</version>
<scope>test</scope>
</dependency>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-java</artifactId>
                <version>2.8.0</version>
            </dependency>
        </dependencies>
  <build>
    <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<inherited>true</inherited>
<configuration>
   <suiteXmlFiles>
            <suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
    </plugins>
  </build>
</project>
 
третий вариант, запускать с помощью чистого testng.jar, для этого вы просто в пути должны добавить все библиотеки, которые вы используете и папку где находятся ваши тесты 
 
set SELENIUM_HOME=%CD%
set CLASSPATH=..\..\bin;%SELENIUM_HOME%\selenium-server-standalone-2.21.0.jar;
java org.testng.TestNG %* testng.xml

 


(Mykhailo Poliarush) #6

classpath в джаве нужен для того, чтобы находить ваши классы и все библиотеки, которые нужны для прогона ваших тестов

ваши тесты - есть классы, потому одни должны быть в classpath для того, чтобы джава могла их запустить

в общем, ваша ошибка это и говорит "Cannot find class in classpath: Tests.fotttest" - немогу найти классы с тестами в classpath

 

покажите полностью, что у вас находиться в testng.xml и все строки, что вы запускаете в консоли

 


(bobby2008) #7

Спасибо за ответы. надеюсь и дальше не бросите меня один на один с этой проблемой)

Вот testng.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-<suite parallel="tests" name="Suite" thread-count="124">
<!-- Suite -->
 -<test name="Test1"> -<classes> <class name="Tests.fotttest"/> </classes> </test>
<!-- Test -->
 -<test name="Test2"> -<classes> <class name="Tests.fotttest"/> </classes> </test>
<!-- Test -->
 </suite>

Вот что запускаю в консоли:

Microsoft Windows [Version 6.1.7600]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Windows\System32>java org.testng.TestNG testng.xml
Error: Could not find or load main class org.testng.TestNG

C:\>cd C:\Users\Oleksandr Moroz\workspace\Diploma1

C:\Users\Oleksandr Moroz\workspace\Diploma1>java org.testng.TestNG testng.xml
Error: Could not find or load main class org.testng.TestNG

C:\Users\Oleksandr Moroz\workspace\Diploma1>java testng.jar testng.xml
Error: Could not find or load main class testng.jar

C:\Users\Oleksandr Moroz\workspace\Diploma1>java -jar testng.jar testng.xml
[TestNG] [ERROR]
Cannot find class in classpath: Tests.fotttest

C:\Users\Oleksandr Moroz\workspace\Diploma1>set classpath
Переменная среды classpath не определена

 

Буду очень Вам благодарен если расскажете что и как нужно изменить чтобы у меня это дело запустилось.


(zc84) #8

возможно так будет проще:)

 

http://dl.dropbox.com/u/59278209/demo.avi

ps на видео забыл показать что testngxml находиться в папке conf

pps в ранере можно использовать относительные пути

ppps на ворнинги в консоле можно внимание не обращать, это к тесту не относится(кстати, можно ли их как нибудть отключить?)

 

вроде всё, думаю по аналогии сделать можно:

сами тестнг тесты добавляете в тестнг xml конфиг

по средствам иде или ручками создаёте jar

в ранере прописываете пути к джарке, либам и testng конфигу

 

ничего не упустил?


(Mykhailo Poliarush) #9

в комментарие http://automated-testing.info/forum/testng-zapustit-po-kliku-suite#comment-1890 показано отличное видео, надеюсь с ним у вас не будет проблем


(Mykhailo Poliarush) #10

могу ли я залить видео на youtube.com и выложить сюда?

(updated) залил, если не хочешь, чтобы висело на youtube.com, скажи я удалю.


(zc84) #11

да без проблем


(bobby2008) #12

Сделал все аналогично тому как написали и вот рещультат (((


C:\Users\Oleksandr Moroz\workspace\Diploma1>set CLASSPATH=C:/Users/Oleksandr Mor
oz/workspace/Diploma1/Apps/Diploma.jar;C:/Users/Oleksandr Moroz/workspace/Diplom
a1/lib/testng.jar;C:/Users/Oleksandr Moroz/workspace/Diploma1/lib/selenium-serve
r-standalone-2.21.0.jar;C:/Users/Oleksandr Moroz/workspace/Diploma1/lib/selenium
-java-2.21.0.jar

C:\Users\Oleksandr Moroz\workspace\Diploma1>set classpath
CLASSPATH=C:/Users/Oleksandr Moroz/workspace/Diploma1/Apps/Diploma.jar;C:/Users/
Oleksandr Moroz/workspace/Diploma1/lib/testng.jar;C:/Users/Oleksandr Moroz/works
pace/Diploma1/lib/selenium-server-standalone-2.21.0.jar;C:/Users/Oleksandr Moroz
/workspace/Diploma1/lib/selenium-java-2.21.0.jar

C:\Users\Oleksandr Moroz\workspace\Diploma1>java org.testng.TestNG testng.xml
[TestNG] [ERROR]
Cannot find class in classpath: Tests.fotttest

C:\Users\Oleksandr Moroz\workspace\Diploma1>

 

Не знаю что там не такЮ помогите кто может, пожалуйста.


(bobby2008) #13

Вы даже не представляете как я Вам благодарен за вариант с антом. Чуть-чуть подправил пусть к selenium-server-standalone-2.21.0.jar и все заработало. Большущее спасибо всем учавствующим.


(zc84) #14

http://dl.dropbox.com/u/59278209/runner.bat


(Mykhailo Poliarush) #15

рад, что у вас получился хотя бы какой-то вариант! обращайтесь.


(bobby2008) #16

Спасибо, но никак не хочет работать. Я думаю я воспользуюсь способом Михаила, это мне подходит. Не нужно делать jar-ников никаких. Я просто не знал что так можно. Я, по большому счету, вообще не знал как запустить тесты из консоли. Но Вам большущее спасибо за помощь.


(zc84) #17

да всегда пжлст:)

удачи!


(Mykhailo Poliarush) #18

в общем, никто не генерить jar файл для запуска тестов, все это дело выполняет ant или maven

потому, сразу лучше в эту сторону и смотреть


(zc84) #19

ну почему же никто, я генерю:)

Бывают случаи, когда клиент,  хочет видеть и запускать тесты на своей стороне с наименьшими трудозатратами. Тоесть просто кликнуть по файлу и полуить результат, без установки mave/ant


(Mykhailo Poliarush) #20

с этим случаем согласен, какие еще можете назвать?