Перейти к содержимому

Фотография

Как закодировать список выполняемых тестов?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 DrBlast

DrBlast

    Активный участник

  • Members
  • PipPip
  • 139 сообщений
  • ФИО:Евгений
  • Город:Москва

Отправлено 13 апреля 2012 - 13:06

Использую Java+Selenium+TestNg+maven
Сейчас: Тесты запускаются из под Hudoson все вместе.
Список запускаемых тестов хранится в testng.xml
Проект запускается как проект Testng suite.

Надо: настроить проект так, чтобы можно было запускать только отдельные тесты в хадсоне.

Нашел еще одину возможность запуска тестов:
final TestNG testNG = new TestNG(true);
final Parser parser = new Parser("src/test/resources/testng.xml");
final List<XmlSuite> suites = parser.parseToList();
testNG.setXmlSuites(suites);
testNG.run();

Теоретически можно в зависимости от передаваемых параметров можно парсить xml и запускать только те тесты, которые необходимо. Но все нужные методы доступные для переменной suites возвращают XmlTest.
Может кто подскажет, как распарсить XmlTest?
Или какой-нибудь другой способ передавать параметры отвечающие за запуск/пропуск теста? Спасибо.
  • 0
Если ничего не помогает, прочтите наконец инструкцию!

#2 Vitalik_V

Vitalik_V

    Активный участник

  • Members
  • PipPip
  • 149 сообщений
  • ФИО:Виталий
  • Город:Харьков

Отправлено 13 апреля 2012 - 13:21

Использую Java+Selenium+TestNg+maven
Сейчас: Тесты запускаются из под Hudoson все вместе.
Список запускаемых тестов хранится в testng.xml
Проект запускается как проект Testng suite.

Надо: настроить проект так, чтобы можно было запускать только отдельные тесты в хадсоне.

Нашел еще одину возможность запуска тестов:

final TestNG testNG = new TestNG(true);
final Parser parser = new Parser("src/test/resources/testng.xml");
final List<XmlSuite> suites = parser.parseToList();
testNG.setXmlSuites(suites);
testNG.run();

Теоретически можно в зависимости от передаваемых параметров можно парсить xml и запускать только те тесты, которые необходимо. Но все нужные методы доступные для переменной suites возвращают XmlTest.
Может кто подскажет, как распарсить XmlTest?
Или какой-нибудь другой способ передавать параметры отвечающие за запуск/пропуск теста? Спасибо.

А что из себя представляет Ваш testng.xml?
  • 0

#3 DrBlast

DrBlast

    Активный участник

  • Members
  • PipPip
  • 139 сообщений
  • ФИО:Евгений
  • Город:Москва

Отправлено 13 апреля 2012 - 13:27

А что из себя представляет Ваш testng.xml?


Примерно так:
<suite name="Suite" parallel="none">
	<test name="jDocTest" preserve-order="true">
		<classes>
			<class name="ru.testing.Doc.TestSummary">
				<methods>
					<include name="runAuthTest" />
					<include name="runTestOutgoing" />
					<include name="runTestInner" />
					<include name="runTestIncoming" />
					...
				</methods>
			</class>
		<classes>
	</test>
</suite>

  • 0
Если ничего не помогает, прочтите наконец инструкцию!

#4 Vitalik_V

Vitalik_V

    Активный участник

  • Members
  • PipPip
  • 149 сообщений
  • ФИО:Виталий
  • Город:Харьков

Отправлено 13 апреля 2012 - 13:45


А что из себя представляет Ваш testng.xml?


Примерно так:
<suite name="Suite" parallel="none">
	<test name="jDocTest" preserve-order="true">
		<classes>
			<class name="ru.testing.Doc.TestSummary">
				<methods>
					<include name="runAuthTest" />
					<include name="runTestOutgoing" />
					<include name="runTestInner" />
					<include name="runTestIncoming" />
					...
				</methods>
			</class>
		<classes>
	</test>
</suite>

По моему оптимальный вариант, это разделить тесты по группам и параметром передавать нужные группы. http://testng.org/do...tml#test-groups
  • 0

#5 DrBlast

DrBlast

    Активный участник

  • Members
  • PipPip
  • 139 сообщений
  • ФИО:Евгений
  • Город:Москва

Отправлено 13 апреля 2012 - 14:33

По моему оптимальный вариант, это разделить тесты по группам и параметром передавать нужные группы. http://testng.org/do...tml#test-groups


А какая разница? Видимо не совсем понял как сделать..

@Test(groups = { "windows.checkintest" })
  public void testWindowsOnly() {
  }

Название группы - константа, поэтому из мавена мы получить ее не можем...
Или нужно каким-то образом программно, зная параметры компоновать из них тест-сьют?
  • 0
Если ничего не помогает, прочтите наконец инструкцию!

#6 DrBlast

DrBlast

    Активный участник

  • Members
  • PipPip
  • 139 сообщений
  • ФИО:Евгений
  • Город:Москва

Отправлено 13 апреля 2012 - 14:59

Частично разобрался:
получаем:
final TestNG testNG = new TestNG(true);
final Parser parser = new Parser("src/test/resources/testng.xml");
String groups = "auth,createdocs.*";
testNG.setGroups(groups);
testNG.run();

ТОлько правда надо как-то задать тест-сьют еще:

[TestNG] [ERROR] No test suite found. Nothing to run
Usage: <main class> [options]


  • 0
Если ничего не помогает, прочтите наконец инструкцию!

#7 DrBlast

DrBlast

    Активный участник

  • Members
  • PipPip
  • 139 сообщений
  • ФИО:Евгений
  • Город:Москва

Отправлено 16 апреля 2012 - 11:56

В общем решил задачу)
Даже получилось, что 2мя способами
1. через группы: проставляем группы в testng.xml
List<String> suites = Lists.newArrayList();
		suites.add("src/test/resources/testng.xml");
		String groups = "auth,createdocs.*";		
		testNG.setGroups(groups);
		testNG.setTestSuites(suites);
		testNG.run();

2. Прочитать xml. Вычистить ненужные узлы Include, записать новую xml и ее подавать на вход в suites.add(...);
  • 0
Если ничего не помогает, прочтите наконец инструкцию!

#8 DrBlast

DrBlast

    Активный участник

  • Members
  • PipPip
  • 139 сообщений
  • ФИО:Евгений
  • Город:Москва

Отправлено 17 апреля 2012 - 09:22

Что-т не понимаю...
Указанный мною способ через мавен не работает. Нагуглил еще один. в pom.xml указываются группы тестов для запуска.
<configuration>
   <groups>${test.groups}</groups>

Но! при запуске одна группа запускается 24раза... а другая 0.. При этом числа 24 нигде в коде или в настройках проекта нет :crazy: magic numbers блин...
  • 0
Если ничего не помогает, прочтите наконец инструкцию!


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных