gpt4 book ai didi

java - JUnit 测试杀死守护进程

转载 作者:行者123 更新时间:2023-11-30 09:15:45 25 4
gpt4 key购买 nike

我正在创建一个监视给定目录变化的守护进程。当它检测到更改时,它会使用目录中存在的 JUnit 运行所有测试。

它通过调用

    private void runTestsInWatchedDirectory(){
TestRunner runner;
runner= new TestRunner(this.dir);
org.junit.runner.JUnitCore.main(runner.getClass().getName());
}

TestRunner 是这段代码的一个小改编:http://burtbeckwith.com/blog/?p=52 .

它正确地找到并运行了所有测试,但是当它完成时,守护进程被终止了!我知道 JUnit 会杀死子线程,但为什么守护进程会死掉?我该如何解决?

最佳答案

来自 JUnitCore.java ,你可以看到 JUnitCore#main 调用了 System.exit():

public static void main(String... args) {
Result result = new JUnitCore().runMain(new RealSystem(), args);
System.exit(result.wasSuccessful() ? 0 : 1);
}

使用类中的其他方法之一,或从 runMain 复制代码:

Result runMain(JUnitSystem system, String... args) {
system.out().println("JUnit version " + Version.id());

JUnitCommandLineParseResult jUnitCommandLineParseResult = JUnitCommandLineParseResult.parse(args);

RunListener listener = new TextListener(system);
addListener(listener);

return run(jUnitCommandLineParseResult.createRequest(defaultComputer()));
}

关于java - JUnit 测试杀死守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19764743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com