Повторное использование теста TestNG

Нужна помощь в мышлении в терминах TestNG. У меня есть большой сторонний набор тестов, написанный на TestNG, и я хотел бы иметь возможность составлять из него тесты и запускать их из Intellij или Maven.

Можно ли составить тесты вместе программно и по-прежнему использовать бегунов, встроенных в эти другие фреймворки. В JUnit вы можете сделать это:

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

public class ExampleTest extends TestCase {

    public static Test suite() {
        final TestSuite suite = new TestSuite("suite");
        suite.addTestSuite(org.thirdparty.tests.FooTest.class);
        suite.addTestSuite(org.thirdparty.tests.BarTest.class);
        suite.addTestSuite(org.thirdparty.tests.BazTest.class);
        return suite;
    }
}

Кажется, я не могу найти эквивалентную концепцию TestNG. Я вижу, что есть класс XmlSuite, который позволяет программно создавать наборы, но я не вижу способа передать это средствам запуска тестов, таким как Maven Surefire или Intellij.

Можно ли сделать простое и прямое и создать тест, который передает объект XmlSuite или иным образом программно составлять тесты, не контролируя при этом средство выполнения тестов?


person David Blevins    schedule 29.08.2010    source источник


Ответы (1)


Это немного надумано, но вы всегда можете создать объект XmlSuite, сохранить вывод toXml() в файл и использовать тег Surefire для ссылки на этот файл.

Отвечает ли это на ваш вопрос?

person Cedric Beust    schedule 29.08.2010
comment
и интересный креативный ответ :) - person Pascal Thivent; 29.08.2010
comment
Спасибо :-) Если вы нашли это креативным, вы должны увидеть пару других, которые пришли мне в голову... - person Cedric Beust; 30.08.2010
comment
Спасибо, Седрик. Это отвечает на вопрос в том смысле, что это кажется невозможным :) Я прекрасно обхожусь без него. С другой стороны, было бы неплохо иметь аннотацию @XmlSuite, которая могла бы либо указывать на файл testng в пути к классам (что делает тег surefire неактуальным), либо ее можно было бы применить к статическому методу, который создает и возвращает XmlSuite (что делает XML-файл не имеет значения). - person David Blevins; 30.08.2010
comment
Дэвид: Интересное предложение по поводу @XmlSuite, я над ним подумаю. - person Cedric Beust; 31.08.2010
comment
Это будет работать только для моего варианта использования, если я смогу заставить этот материал запускаться автоматически, прежде чем запускать свои тесты, независимо от того, как они вызываются. (Я хочу поддерживать подключаемый модуль Eclipse в качестве основного графического интерфейса для тестирования.) - person reinierpost; 29.05.2013