Реализация пакета TestNg программно и его выполнение через maven surefire

Как реализовать набор тестов TestNG, используя java вместо testng.xml. Я следую следующей процедуре, но не могу запустить ее с подключаемым модулем maven suefire.

Пожалуйста помоги

  TestNG testNG = new TestNG();
    List<XmlClass> classList =new ArrayList<XmlClass>();
    List<XmlTest> testList = new ArrayList<XmlTest>();
    List<XmlSuite> suiteList= new ArrayList<XmlSuite>();
    List<String> suiteNameList = new ArrayList<String>();
    XmlTest xmlTest= new XmlTest();
    XmlSuite suite = new XmlSuite();
    XmlClass xmlClass = new XmlClass();
    xmlClass.setClass(bpsTestNg.class);
    classList.add(xmlClass);
    xmlTest.setClasses(classList);
    testList.add(xmlTest);
   suite.setTests(testList);
    suiteList.add(suite);
    suite.setName("sampleSuite1");
    suiteNameList.add("sampleSuite1")  ;
    suite.toXml();
    IConfiguration iConfiguration = null;
    SuiteRunner suiteRunner= new SuiteRunner(iConfiguration,suite,".");
    suiteRunner.run();

Спасибо, Даршана.


person Dharshana    schedule 25.01.2012    source источник
comment
Честно говоря, не уверен, почему вы вообще делаете это так (просто аннотируете свои классы), но вот что говорится в документации: testng.org/doc/   -  person alphazero    schedule 25.01.2012
comment
Я просто использую его с аннотацией @BeforeSuite. Зачем мне это нужно, так это то, что я использую слушателей с верным огнём. При запуске каждого набора я запускаю прослушиватель и выполняю задачу. но при непосредственном предоставлении пакета xml для уверенного запуска возникают ошибки. Вот почему я попытался создать набор по коду.   -  person Dharshana    schedule 26.01.2012


Ответы (2)


Если вы используете API, ваш основной класс больше не является тестовым классом TestNG, а является обычным классом Java, поэтому неудивительно, что Surefire больше не рассматривает его как тест.

person Cedric Beust    schedule 25.01.2012
comment
Привет, Beust. Я запускаю класс с верным огнём, используя аннотацию @BeforeSuite. в моем случае у меня сложная тестовая структура, в которой я использую прослушиватель набора и выполняю задачу. Я даже не могу использовать все XML-файлы пакета в своем корневом файле pom. Это причина, по которой я пытаюсь создать набор по коду. Поэтому я могу включить его в безошибочный параметр с параметром. - person Dharshana; 26.01.2012
comment
ОТ: Спасибо за TestNG, Седрик. - person alphazero; 28.01.2012

Привет, я решил эту проблему, пожалуйста, обратитесь к коду ниже

 @BeforeSuite
 public static void TestSuite() {
    TestNG testNG = new TestNG();

    List<Class> listnerClasses = new ArrayList<Class>();
    List<String> suiteNameList = new ArrayList<String>();
    Class[] classList = new Class[]{
            ManagementClient.class,
            ProcessManagementClient.class,
            DeployClient.class,
            RedeployClient.class};
    listnerClasses.add(org.wso2.platform.test.core.PlatformTestManager.class);
    listnerClasses.add(org.wso2.platform.test.core.PlatformSuiteManager.class);        
    testNG.setDefaultSuiteName("suite");
    testNG.setListenerClasses(listnerClasses);
    testNG.setTestClasses(classList);
    testNG.run();
}

Спасибо за вашу помощь :)

РЕДАКТИРОВАТЬ: улучшено форматирование ;-)

person Dharshana    schedule 04.02.2012