在一个罐子里面运行Junit测试类,在jar外部使用junit

时间:2013-01-26 13:06:54

标签: java command-line jar junit executable-jar

所以我使用one-jar将我的类及其依赖项(apache commons cli)打包在一个jar文件中(这很容易做到,请参阅Command-Line Approach部分)。现在我很好奇我是否可以使用类外的Junit jar在jar中运行java测试类。因此,sw.jar中的测试类的路径是:

sw.jar\main\sw.jar\uoa\di\ys11\hw2\TestSmithWaterman.class

main\是一个罐子的东西)。我尝试过各种变体:

java -jar -cp lib/junit.jar org.junit.runner.JUnitCore  uoa.di.ys11.hw2.TestSmithWaterman

没有运气 - 所以命令行是什么?或者我是否需要以某种方式修改单罐清单?

编辑:/boot-manifest.mf

Manifest-Version: 1.0
Main-Class: com.simontuffs.onejar.Boot
One-Jar-Main-Class: uoa.di.ys11.hw2.Hw2

/META-INF/MANIFEST.MF

Manifest-Version: 1.0
Created-By: 1.7.0_09 (Oracle Corporation)
Main-Class: com.simontuffs.onejar.Boot
One-Jar-Main-Class: uoa.di.ys11.hw2.Hw2

1 个答案:

答案 0 :(得分:3)

使用以下命令行测试

java -cp lib/junit.jar;sw.jar org.junit.runner.JUnitCore  uoa.di.ys11.hw2.TestSmithWaterman

修改

这应该适用于普通的罐子,但罐子是由一个罐子

创建的
  

One-JAR允许您将Java应用程序与其一起打包   依赖Jars到一个可执行的Jar文件中。

之后,junit是不可能的,因为我在我的案例中提到了junit-4.4来加载这些类进行测试。