将应用程序部署为jar文件时,TestNG实例初始化不起作用。

时间:2018-09-28 14:20:06

标签: java eclipse javafx jar testng

我浏览了每个博客/论坛,但无法解决此问题。一个简单的项目,在按钮上单击以声明testNG实例并运行它。当项目在Eclipse中运行时,此方法有效。但是在将项目导出为Jar文件并运行该jar文件后,它卡在了TestNG实例初始化中。

我在eclipse中创建了一个Javafx项目。

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中的textArea。为了调试正在发生的事情,我将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

从Eclipse运行时的屏幕截图:

enter image description here

作为JAR文件运行时的屏幕截图

enter image description here

0 个答案:

没有答案