如何在jar中执行JUnit包

时间:2014-08-11 06:40:21

标签: java junit junit4

我有一个项目,其中一个包包含所有JUnit测试。 (但那些不是在src / test中,而是在src / main中)。在eclipse环境中,我可以选择包并以JUnit的形式运行。然后它将按字母顺序执行类。但我现在要做的是做同样的但是使用我建造的jar。我该怎么做 ? (在命令行中)

1 个答案:

答案 0 :(得分:2)

我能想到的最近解决这个问题的方法是在你的src代码中添加一个套件类,然后从命令行运行suite。如果您愿意,可以使用cpsuite为您提供的动态类路径搜索,并执行以下操作(这也将更通用,不涉及向项目添加套件类):

用这个类写一个jar:

import org.junit.extensions.cpsuite.ClasspathSuite;
import org.junit.extensions.cpsuite.ClasspathSuite.IncludeJars;
import org.junit.runner.RunWith;

@RunWith(ClasspathSuite.class)
@IncludeJars(true)
public class MySuite {
}

在类路径中包含此jar并从命令行运行类似的东西:

java -cp <path-to-where MySuite jar>:<path-to-tested-jar + all its dependencies>:<path-to cpsuite.jar + all its dependencies> org.junit.runner.JUnitCore <full-package-name-to-where-MySuite-is-in>.MySuite