我想构建一个JUnit集成测试,启动Java进程(基于Spring),然后对该进程进行调用。
如果我从命令行调用它,我将通过调用启动Java进程
来自我的pom目录中的命令行的mvn exec:java -DmainClass=myClass -Dblahblah
有没有办法从我的Java测试器类中调用exec:main,以便我的测试人员可以对进程执行调用并验证结果?
答案 0 :(得分:2)
代码将类似于以下内容:
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile( new File( "/path/to/pom.xml" ) );
request.setGoals( Collections.singletonList( "install" ) );
Invoker invoker = new DefaultInvoker();
invoker.execute( request );
答案 1 :(得分:1)
您可以使用maven-invoker
以下是您需要的内容
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile( new File( "/path/to/pom.xml" ) );
request.setGoals( Collections.singletonList( "exec:java -DmainClass=com.vgrazi.MyClass -Dparam1=value1" ) );
Invoker invoker = new DefaultInvoker();
invoker.execute( request );