Инициализация экземпляра TestNG не работает, когда приложение развернуто в виде файла JAR. - PullRequest
0 голосов
/ 28 сентября 2018

Я просмотрел все блоги / форумы, но не смог решить эту проблему.Простой проект, по нажатию кнопки объявить экземпляр testNG и запустить его.Это работает, когда проект запущен в затмении.Но после экспорта проекта в виде файла Jar и запуска этого файла Jar он застревает при инициализации экземпляра TestNG.

Я создал проект javafx в eclipse.

Main.java:

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
    try {
        Parent root= FXMLLoader.load(getClass().getResource("home.fxml"));
        primaryStage.setTitle("Hello");
        primaryStage.setScene(new Scene(root, 800, 500));
        primaryStage.show();
    } catch (Exception e) {
        e.printStackTrace();
       }
  }

  public static void main(String[] args) {
      launch(args);
   }
}

Кнопка и текстовая область в FXML.Для отладки происходящего я сопоставил System.out.print с textArea.При запуске из eclipse он печатает все как положено, но при запуске в виде jar-файла печатает только «создание», и мне приходится убивать процесс «javaw.exe» через диспетчер задач

controller.java

public class controller  implements Initializable {

@FXML
private Button testBtn;

@FXML
private TextArea statusArea;

@FXML
public void buttonClicked() {
    try {
    System.out.println("creating");
    TestNG testNG = new TestNG();
    System.out.println("DONE creating");
    ArrayList<String> suites = new ArrayList<>();
    suites.add("testng.xml");
    testNG.setTestSuites(suites);
    testNG.run();
    System.out.println("Running");
    }catch (Exception e) {
        System.out.println("EXCEPTION: "+e.getMessage());
    }
}

@Override
public void initialize(URL url, ResourceBundle rb) {
    OutputStream out = new OutputStream() {
        @Override
        public void write(int b) throws IOException {
            appendText(String.valueOf((char) b));
        }
    };
    System.setOut(new PrintStream(out, true));
}

public void appendText(String str) {
    Platform.runLater(() -> statusArea.appendText(str));

  }
}

Использованные библиотеки:

testng-6.14.3: http://central.maven.org/maven2/org/testng/testng/6.14.3/testng-6.14.3.jar

jcommander-1.48: http://central.maven.org/maven2/com/beust/jcommander/1.48/jcommander-1.48.jar

Снимок экрана при запуске из затмения:

enter image description here

Снимок экрана при запуске в виде файла JAR

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...