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

Фотография

Изменение результатов тестирования


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

#21 filipok

filipok

    Новый участник

  • Members
  • Pip
  • 40 сообщений

Отправлено 08 декабря 2010 - 09:31

Откуда до него достучаться?

Из моего класса тестов. У меня что то даже до параметров достучаться не получается
  • 0

#22 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 08 декабря 2010 - 11:16

Ну тут я вам помочь не могу - сам такие вещи не проделывал и не планирую в ближайшем будущем (тем более считаю такие действия излишним усложнением задачи). Хотя на решение посмотреть было бы любопытно.
  • 0

#23 filipok

filipok

    Новый участник

  • Members
  • Pip
  • 40 сообщений

Отправлено 08 декабря 2010 - 12:06

я бы тоже хотел посмотреть на решение 8))))
  • 0

#24 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 08 декабря 2010 - 19:30

мне всё таки импонирует вариант заморочиться с контекстом, тока как туда добраться пока что не могу понять

Это я Вам расскажу -- реализуйте листенер IInvokedMethodListener2
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#25 filipok

filipok

    Новый участник

  • Members
  • Pip
  • 40 сообщений

Отправлено 09 декабря 2010 - 10:22


мне всё таки импонирует вариант заморочиться с контекстом, тока как туда добраться пока что не могу понять

Это я Вам расскажу -- реализуйте листенер IInvokedMethodListener2

спасибо, но я уже разобрался, хотя решение аналогичное, тока листенер другой 8)
Чуть позже выложу код, ща занят чутка 8)
  • 0

#26 filipok

filipok

    Новый участник

  • Members
  • Pip
  • 40 сообщений

Отправлено 09 декабря 2010 - 11:46

Народ как вызвать мой репортер через командную строку. Запускаю тесты через эклипс+ант так:
<target name="run-tests" depends="compile">
		<taskdef classpathref="compile.cp" name="testng" classname="com.beust.testng.TestNGAntTask" />
		<testng classpathref="run.cp" outputdir="${test.output}" listener="MyTestListener" reporter="MyEmailableReporter">
			<xmlfileset dir="${basedir}" includes="testng.xml" />
		</testng>
	</target>

типа всё работает и мой отчёт отображается.

Запускаю тесты из командной строки так:
java -cp lib\testng-5.14.1.jar;lib\MyTests.jar org.testng.TestNG -reporter MyEmailableReporter -listener MyTestListener testng.xml

листенер отрабатывает а вот репортер отчёт не создаёт, что за подстава? что я упустил?
  • 0

#27 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 09 декабря 2010 - 15:46

Запускаю тесты из командной строки так:

java -cp lib\testng-5.14.1.jar;lib\MyTests.jar org.testng.TestNG -reporter MyEmailableReporter -listener MyTestListener testng.xml

листенер отрабатывает а вот репортер отчёт не создаёт, что за подстава? что я упустил?

-usedefaultlisteners false
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#28 filipok

filipok

    Новый участник

  • Members
  • Pip
  • 40 сообщений

Отправлено 09 декабря 2010 - 17:21


Запускаю тесты из командной строки так:

java -cp lib\testng-5.14.1.jar;lib\MyTests.jar org.testng.TestNG -reporter MyEmailableReporter -listener MyTestListener testng.xml

листенер отрабатывает а вот репортер отчёт не создаёт, что за подстава? что я упустил?

-usedefaultlisteners false

ок, завтра попробую, тока вот вопрос, у меня то не листенер не работает а репортер, с листенером то всё в порядке. Да и листенеры, что по умолчанию работают, мне как бы нужны я думаю + в эклипсе то всё работает без этой опции.

Короче всё это как то странно.
буду надеяться что это поможет.
В доках написано что когда запускаешь репортер из командной строки через ключ -reporter надо ещё какие то фильтры указывать, но я подробной информации об этом не нашёл (что за фильтры и с чем их едят).
  • 0

#29 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 09 декабря 2010 - 20:57

ок, завтра попробую, тока вот вопрос, у меня то не листенер не работает а репортер, с листенером то всё в порядке. Да и листенеры, что по умолчанию работают, мне как бы нужны я думаю + в эклипсе то всё работает без этой опции.

Репортер -- он тоже листенер.
Хотя, сейчас почитал документацию -- может быть я и не прав. Раньше репортер можно было включить только один (именно поэтому дефолтный надо было отключать), а теперь написано, что их может быть сколько угодно. Да, и про фильтры ещё появилась новая фича, тоже раньше не было, надо бы разобраться.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#30 filipok

filipok

    Новый участник

  • Members
  • Pip
  • 40 сообщений

Отправлено 10 декабря 2010 - 08:08

Попробовал, не помогло, репортер напрочь не хочет вызываться.

8))))) взял и от балды станцевал с бубном, переместил свой репортер под ключ листенера:
java -cp lib\testng-5.14.1.jar;lib\mytests.jar org.testng.TestNG -listener test.listeners.MyTestListener;test.reporters.MyEmailableReporter testng.xml
и всё заработало и репортер и листенер, я балдею

Ну и выкладываю реализацию листенера как и обещал
MyTestListener:
public class MyTestListener extends TestListenerAdapter {

  private int testCasesCount = 0;

  private String currentTestClassName;

  public void onTestStart(ITestResult result) {
    testCasesCount++;
    try {      
      Class cl = result.getTestClass().getRealClass();
      
      // count is reset if test class is changed
      String className = cl.getName();
      if (!className.equals(currentTestClassName)) {
        currentTestClassName = className;
        testCasesCount = 1;
      }
      
      result.setAttribute("WorkSheetName",
          ((AbstractTestClass) cl.newInstance()).getWorkSheetName()); //заносим название вкладки (номер тестовой функции)
      result.setAttribute("TestCase", String.valueOf(testCasesCount)); //заносим номер тестового случая 
    }
    catch (IllegalArgumentException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    catch (SecurityException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    catch (IllegalAccessException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    catch (InstantiationException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}

Далее при реализации интерфейса IReporter вызываем в нужном месте метода generateReport(List<XmlSuite> xml, List<ISuite> suites, String outdir) result.getAttribute("Имя переменной")
где result - это результаты по данному тестовому случаю.
  • 0


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

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