Mr_*_*s_D 9 java junit command-line jar executable-jar
所以我已经使用one-jar在jar文件中打包了我的类和它们的依赖项(apache commons cli)(这很容易做到,请参阅命令行方法部分).现在我很好奇我是否可以使用类外的Junit jar在jar中运行java测试类.所以里面测试类的路径sw.jar是:
sw.jar\main\sw.jar\uoa\di\ys11\hw2\TestSmithWaterman.class
Run Code Online (Sandbox Code Playgroud)
(这main\是一个罐子的事情).我尝试过各种变化:
java -jar -cp lib/junit.jar org.junit.runner.JUnitCore uoa.di.ys11.hw2.TestSmithWaterman
Run Code Online (Sandbox Code Playgroud)
没有运气 - 所以命令行会是什么?或者我是否需要以某种方式修改单罐清单?
编辑/boot-manifest.mf::
Manifest-Version: 1.0
Main-Class: com.simontuffs.onejar.Boot
One-Jar-Main-Class: uoa.di.ys11.hw2.Hw2
Run Code Online (Sandbox Code Playgroud)
而/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
Run Code Online (Sandbox Code Playgroud)
使用以下命令行进行测试
java -cp lib/junit.jar;sw.jar org.junit.runner.JUnitCore uoa.di.ys11.hw2.TestSmithWaterman
Run Code Online (Sandbox Code Playgroud)
编辑:
这应该适用于普通的 jar,但 jar 是由 one-jar 创建的
One-JAR 允许您将 Java 应用程序及其依赖项 Jas 打包到单个可执行 Jar 文件中。
之后,junit 就不可能加载此类类进行测试,正如我在我的案例中提到的 junit-4.4 一样。