【问题标题】:Running Java project ONLY if all Junit tests passed OK仅当所有 Junit 测试都通过 OK 时才运行 Java 项目
【发布时间】:2018-02-21 15:35:06
【问题描述】:

我正在用 Java 运行一个项目,该项目被配置为首先运行 JUnit 测试类(它是一个带有参数化测试的类),然后才构建项目本身并运行它。

有没有办法配置 Intellij 以仅在 Junit 的测试成功通过的情况下运行项目的构建?

谢谢

【问题讨论】:

  • 你会考虑像 maven 这样具有项目生命周期的构建工具吗?

标签: java intellij-idea junit


【解决方案1】:

在 intellij 中的“运行/调试配置”->“启动前”->“+”->“运行另一个配置”。最后一个可能是你的单元测试('all in module_name')。

【讨论】:

    【解决方案2】:

    最好的方法是从你的主应用程序中运行第一个 JUnit 测试并检查结果,如果错误你退出应用程序:

    JUnitCore junit = new JUnitCore();
    Result result = junit.run(testClasses);
    
    if (!result.wasSuccessful()) {
                    LOG.fatal("Some JUnit Text Failed, app will exit");
                    System.exit(-1);
    }
    

    【讨论】:

    • 问题是我的Junit类为了产生一定的结果调用了项目的main方法。这意味着上面的代码将导致无限循环(因为 main 和 Junit 会来回调用对方)。也许在这种情况下我将不得不使用一个标志来区分将通过主要参数传递的调用者......(?)
    • 我知道,这会产生循环依赖,但是从 JUnit 调用 main 并不是一个好主意
    猜你喜欢
    • 1970-01-01
    • 2013-12-07
    • 2013-12-05
    • 2011-06-17
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多