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