Jar-файл из проекта LeanFT - класс не приемлем - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть TestNG основанные LeanFT тестовые случаи и я пытаюсь сгенерировать jar файл. Я использую IntelliJ IDEA, чтобы установить детали артефакта в File -> Project Structure -> Project Settings -> Artifacts -> Jar -> From modules with dependencies. Я выбираю имя класса, но получаю ошибку, что недопустимо.

enter image description here

ОБНОВЛЕНИЕ 2018.05.03. Я создал метод main в новом классе, но получил то же сообщение об ошибке.

import org.testng.TestNG;
import org.testng.xml.Parser;
import org.testng.xml.XmlSuite;
import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import java.util.List;

public class LeanFTest {
    public void main() throws IOException, SAXException, ParserConfigurationException {
        TestNG testNG = new TestNG();

        String xmlFileName = "testng.xml";
        List<XmlSuite> suite = (List<XmlSuite>)(new Parser(xmlFileName).parse());
        testNG.setXmlSuites(suite);

        testNG.run();
    }
}

1 Ответ

0 голосов
/ 03 мая 2018

Кажется, у вас есть какая-то комбинация между тестовым проектом (с использованием шаблона LeanFT TestNG), java-приложением и приложением "кто знает, что еще".

Если у вас есть метод main и вы все еще хотите запускать тесты TestNG, вам нужно использовать класс TestNG. Например

TestNG testNG = new TestNG();
testNG.setTestClasses(WebTestFactory.class);
testNG.run();

Подробнее об этом подходе можно прочитать в официальных документах или в этой ветке SO

Если у вас нет main класса, вы должны его создать. (как еще файл .jar может знать, что такое точка входа?).

В целом, эта ошибка указывает на конфликт между типом проекта и структурой (содержанием) проекта


Согласно вашему последнему комментарию: Не могли бы вы показать мне пример / образец, куда поместить метод main ()?

  1. Вы можете создать новый файл класса или даже использовать LeanFTest
  2. Создать main метод.

    Что бы вы ни делали в основном методе, все ваше приложение будет работать. В вашем конкретном случае (при выполнении тестов TestNG) вам необходимо выполнить следующие действия: в вашем основном методе :

  3. Создать тестовый экземпляр (TestNG testNG = new TestNG();)

  4. Используйте этот экземпляр для подготовки набора тестов

    Указывая на SO поток выше (снова), это будет означать что-то вроде:

    String xmlFileName = "testng.xml";
    List<XmlSuite> suite = (List <XmlSuite>)(new Parser(xmlFileName).parse());
    testNG.setXmlSuites(suite);
    
  5. Запустить люкс

    testNG.run();
    

После этого, когда вы создаете свой артефакт, вы указываете на класс, у которого есть метод main, и двойной щелчок по .jar (или выполнение его из командной строки) должен запустить набор тестов.

...