首页 > 解决方案 > 使用 maven surefire 使用 mpirun 运行 Junit 测试

问题描述

我想使用与此问题中讨论的内容非常相似的mpirun -n 4 java <relevant arguments>Junit 测试,但使用 maven surefire 而不是 ant。

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

我的问题是: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>

标签: javamavenjunitmpimaven-surefire-plugin

解决方案


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

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

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

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


推荐阅读