среда, 4 января 2012 г.

Новый проект, первая шишка, или Как подключить testing.xml для TestNG

Закончился предыдущий проект и начался новый. Задача минимум: автоматизировать тестирование консольного приложения, которое является интерфейсом к фреймворку.

Решили использовать Java как базу для работу. Будем запускать консольное приложение и проверять фалы, базы, немного UI, вообщем все. И потому будем использовать для проверки приложений, написанных на базе этого фреймворка. За основу решили взять не jUnit, а TestNG. Почему? За очень полезную штуку по заданию порядка тестов. А порядок для экономии времени оочень важен. Шутка ли каждый небольшой тест разворачивать новую чистую инфраструктуру.

Почитал немного. Написал несколько примитивных тестов. Назвал test1 и test2. Запустил. Сначала прошел test1, потом test2. Отлично. А что тут с порядком? Оказывается TestNg использует специальный конфигурационный xml-файл. В примерах и у меня он testing.xml. Хотя это не так и важно. Главное преподнести его как конфигурационный проекту.
Создал, в том же месте, где и лежит тестовый единственный класс. Запускаем - ничего. Хмм. Нет потяно, что само по себе мало, что работает.


Порядок вот такой получается:


Итак я пользую IDEA. Для того чтобы наш проект воспринимал testing.xml мы его создаем и прописываем туда, например, следующее.


<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestNG Test Suite" verbose="1">
  <test name="Test order verification" preserve-order="true">
    <classes>
      <class name="Test1">
        <methods>
          <include name="test2" />
          <include name="test1" />
        </methods>
      </class>
      <class name="Test2">
        <methods>
          <include name="test4" />
          <include name="test3" />
        </methods>
      </class>
    </classes>
  </test>
</suite>

Да, у нас соотвественно есть два класс Test1 и Test2. А там методы test1, test2 и test3, test4, соотственно. Которые реализуют что-то типа
@Test(description="3rd test")
    public void test4() {
        org.testng.Assert.assertFalse(true);
    }

Ожидаемый порядок при этом
  1. test2
  2. test1
  3. test4
  4. test3
Вызываем контекстное меню на testing.xml и выбираем Create

И в появившемся окне настраиваем, что мы хотим. Такие вот настройки меня вполне устраивают.

После этого появляется дополнительный пункт на панели запуска приложения.

Запускаем и получаем то, что хотели


Буду апдейтить по мере разбирательства

Комментариев нет:

Отправить комментарий