运行 Junit 使用 maven surefire 测试 mpirun

Running Junit tests with mpirun using maven surefire

我想使用 mpirun -n 4 java <relevant arguments>very similar to what was discussed in this question 进行一些 Junit 测试,但使用 maven surefire 而不是 ant。

从上一个问题的评论来看,OP 似乎能够通过创建专用脚本并在他的 ant 脚本参考的 junit 部分使用 jvm 参数来实现这一点那个脚本。

我的问题是:maven firesafe 中是否存在等效功能?可以让我更改用于任意脚本的 "java" 命令的东西吗?或者我应该创建一个特定的 ant 脚本来从 maven 调用?

这是我的 pom.xml 文件的摘录:

         <plugin>
           <artifactId>maven-surefire-plugin</artifactId>
           <version>2.22.1</version>
           <configuration>
             <!-- Specify a script with a relative path here ? -->
           </configuration>
         </plugin>

经过一些工作后,我得到了一个与我预期完全不同的解决方案。

我开发了自己的 Junit4 运行程序,它为我创建了正确的 mpirun -np X java -cp... 命令并解析了每个级别的测试结果。

由于使用自定义运行程序是 Junit4 的标准功能,它可以与任何环境无缝集成 运行 Junit 测试,包括我特别感兴趣的 Maven Surefire(和 Failsafe)插件。

我不会开发这个自定义 Junit 运行程序如何工作的实现细节,但如果您有兴趣,我刚刚在 GitHub(网站:https://handist.github.io/mpi-junit/)上发布了它。