java - 如何在 jar 中执行 JUnit 包

标签 java junit junit4

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

最佳答案

我能想到的最接近这个问题的解决方案是将套件类添加到您的 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

关于java - 如何在 jar 中执行 JUnit 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25237151/

相关文章:

java - stub 检查异常 : how to handle the exception

java - 是否可以使用 geotools 编写具有自定义属性定义的形状文件?

java - Calendar.MONTH 设置为错误的月份

java - Java 中的 OpenCV 绘制轮廓

java - 卡片 View 未出现在 RecyclerView 中

maven-2 - 如何告诉Maven2在新的JVM实例中一个一个地执行jUnit测试?

unit-testing - 如何初始化一个对象并将其用于所有测试用例

java - 如何创建不显示在失败跟踪中的自定义 JUnit4 断言

java - 如何使用 Mockito 实现复合对象

java - EasyMock 和返回泛型类的方法