java - 如何通过mvn命令顺序执行2个Java类

标签 java maven junit command-line-arguments

我有 2 个具有共生关系的 Java 类。

类 1 生成一些输出文件,类 2 使用类 1 的输出并验证它。这两个类都从命令行获取输入。该项目基于 Maven。

鉴于这种共生性质,我不确定如何“连接它们”?

我的想法是,编写另一个 Java 类,它接受命令行输入并调用这两个类。然而,这里还有另一个不确定性,我如何运行类 1(为了生成输出文件),然后我可以让类 2 来验证它。也许 Junit @Before 或一些注释?我真的不确定如何继续。我希望我在这里说得有道理。

任何帮助或建议将不胜感激。

最佳答案

从 JUnit 方法中执行被测类的 main() 方法。

public class Class2 {
  @Before
  public void produceOutputFiles() {
      Class1.main(new String[] { "these", "are", "commandline", "arguments"});
  }

  @Test
  public void validateClass1Output() {
      //read in the files and validate the output
  }
}

通过 Process.exec() 调用 Class1 是一个有很多缺点的选项。将测试和被测试代码保存在同一个 JVM 中要简单得多。

关于java - 如何通过mvn命令顺序执行2个Java类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35690470/

相关文章:

java - Spring Hibernate H2 Junit 测试 - 如何在启动时加载模式

java - 仅运行 JUnit 测试时 Hibernate SessionFactory 创建失败

java - 如何通过读取 bufferedreader 来获取上一行的可变数量

java - 为什么 Symbol 的字段(左和右)总是返回 0?

java - 使用 testNG Maven 从 info.cukes 更改为 io.cucumber。抛出运行时错误

java - 使用 JBoss 6 时,我的 pom.xml 中的 JTA jar 应该设置为什么?

java - 如何在 Scala 中为存在类型显式指定参数化类型?

java - java中使用逗号分隔符分割字符串数组

SVN 修订号和时间戳

java - 运行 junit easymock 测试时意外的方法调用