之前对Linux命令不是很熟悉,想知道有没有可以提供一个DEMO。实现通过Linux命令来执行java的一些单元测试类或者方法
那个评论写起来麻烦,还是再这里回答你:
你要使用shell来调用java
java命令只能运行含有main方法的类。即使你使用其它的工具它的入口本质还是一个含有main方法的类。这点不用疑虑。
如果你想你自己都可以进行封装
比如你让含有main方法的类充当控制器角色,嘿嘿这个就考验你程序设计能力了。
可以学习作框架一样分层什么的。比如你做一个 TestExecutor ,它含有main方法。
然后在这个类里面根据传入的参数去判断你具体调用哪个测试类以及加载一些配置文件什么的。。。
至于调用,你花哨一些增强你工具的性质。比如将参数什么的写入property文件或者xml用程序读取
对于测试类的调用你就做一些接口或者抽象类什么的,然后给他们做一个适配器(设计模式),如果你愿意甚至可以封装Junit测试中的代码
简化测试类编写时候的复杂度。
然后你将你这个工程打成一个jar包,比如TestExecutor.jar
至于实际的测试你在重新做一个工程,引入你做的包。这样适用范围更广。
然后将你的测试工程也可以打成一个jar包加入到上面的CLASSPATH中
调用的shell 就是 java -cp ${CLASSPATH} xxxx.TestExecutor 就可以了。
也就是shell调用的是一个控制器,对于自己写的测试代码只是这个控制器调用的对象而已。
工程没有bin路径。。。。
这个不要紧,你只要知道java是执行class文件的就行。我给你说的那些路径只是一个例子。
你想想不用IDE,只用editplus之类的编辑器和jdk如何变异运行一个java工程的?
只要你能准确找到class就行。至于那些路径根据自己喜好去设置。不用理会。
若有帮助还望采纳
Java 的测试可以去写Junit测试代码,仍然是Java
因此针对Java的单元测试你去写这个Java的Junit代码。
然后通过Linux的shell来执行这个Junit就可以了。
比如你写一个 Test1.java,假如你的工程是testProject,包名是 demo.my.test
你把它放在/Apl/testProject/src/demo/my/test/Test1.java
那么你就可以写如下的shell
test.sh
#!/bin/ksh
#shell的类型自己看你系统中的shell是那种的
#.定义你工程的路径,jar包,以及properties
TEST_DIR = "/Apl/testProject"
TEST_LIB ="${TEST_DIR}/lib/*"
TEST_BIN = "${TEST_DIR}/bin"
TEST_CONF = "${TEST_DIR}/properties"
#设置classpath
CLASSPATH=${TEST_LIB}:${TEST_BIN}:${TEST_CONF}
#指定Java命令在哪里假如你把Java安装在/usr/java/java8/
alias java = /usr/java/java8/bin/java
cd ${TEST_DIR}
#指定测试的Java类
TARGET = "demo.my.test.Test1"
#执行class文件
java -cp ${CLASSPATH} ${TARGET}
执行的时候运行这个test.sh就可以了
你也可以将测试对象的名字写在外面,这样它就可以通用了
如果你的Java程序需要传入参数
就是 java -cp ${CLASSPATH} ${TARGET} $1
调用shell的时候就是 test.sh 参数
maven 或ant建立工程,将单元测试加入test的target。在shell下运行 mvn test之类的命令就可以执行测试了,网上例子很多。