目录
一、linux编译并运行java程序
1.安装和使用nano编辑器
2.nano编辑器的补充说明
3.编译Java文件
4.运行Java类文件
二、Linux中添加Junit插件并进行单元测试
1.下载jar包
2.创建需要被测试的类
3.创建测试类
4.运行测试
三、总结
一、linux编译并运行java程序
在本项目第四篇博客中,安装好JDK之后,我们就可以进行Linux中java程序的编译和运行。为便于示范,本文中暂不采取SSH的的方式展示,以Ubuntu的终端来运行和展示。
1.安装和使用nano编辑器
Linux常用命令nano是一个文本编辑器,比vi/vim要简单得多,比较适合Linux初学者使用。
Ubuntu下,使用下面命令进行安装:
apt-get -y install nano
安装完毕后,使用终端打开编辑器,记得文件名后跟.java字样才是java文件:
nano [文件名]
如果是该文件夹下的文件不存在,会自动创建一个新文件并打开;如果存在,则打开原来的文件。接下来可以在nano中编辑java文件,例子如下:
2.nano编辑器的补充说明
- 在上图中我们可以看到,操作有”^+字母“的指示,其实就是Ctrl+字母的操作。
- 保存:Ctrl+O,按下
Ctrl+O
,会提示你是否保存文件。 - 退出:Ctrl+X,如果文件没有进行修改,按下
Ctrl+X
- ,会自动退出。如果文件已经修改,按下
Ctrl+X
- ,会提示你是否保存文件,按下回车即可保存。
3.编译Java文件
保存文件并退出后,使用终端进行编译:
javac 文件名
如:javac HelloWorld.java
如果没有错误,上面的命令不会产生输出。当你编译 Java 程序时,它会生成一个 .class 文件,文件名是你在程序中使用的类。
4.运行Java类文件
你需要运行上一条命令生成的类文件,但不需要在这里指定类的扩展名,只需要类的名称。而这一次,你使用 java
命令,而不是 javac
。
java HelloWorld
最终得到输出结果:
二、Linux中添加Junit插件并进行单元测试
众所不周知,JUnit单元测试框架由Erich Gamma和Kent Beck编写的一个回归测试框架(Regresion Testing Framework),主要用于Java语言程序的单元测试,目前使用的主流版本是JUnit4以上版本。在idea中,我们可以通过几个简单操作添加JUnit的插件,但是在Ubuntu中使用需要下载jar包。
下面以一个测试例子来进行单元测试的操作解说,自己操作时需要替换相应命令行的文件名。
1.下载jar包
需要下载junit-4.12.jar和hamcrest-core-1.3.jar两个jar包,建一个demo文件夹,并把两个jar包放进去。以后编写代码也是在这个文件夹下。
2.创建需要被测试的类
创建JUnitTest.java文件,并写入以下代码:
public class JUnitTest {
public int add(int operator1,int operator2){
return operator1+operator2;
}
}
在这其中,需要测试的方法就是add方法,传入两个操作数,返回他们的和。
保存退出后,使用终端编译这个类:
javac JUnitTest.java
3.创建测试类
创建JUnitTestTest.java文件,并写入以下代码:
import static org.junit.Assert.*;
import org.junit.Test;
public class JUnitTestTest {
JUnitTest j=new JUnitTest();
@org.junit.Before
public void setUp() throws Exception {
System.out.println("测试开始");
}
@org.junit.After
public void tearDown() throws Exception {
System.out.println("测试结束");
}
@org.junit.Test
public void add() {
assertEquals(5,j.add(2,3));
}
}
代码中需要注意和补充的地方:
- 我们使用语句import了Asert断言和Test文件,这来源于刚才下载的jar包,因此等会的命令需要进行jar包与该文件的一个合并处理。
- @Test注解:注解在需要测试的方法上。该注解有几个,运行该测试类的时候就测试几个方法。
- @Before注解:在需要测试的方法之前运行,在这里只是输出”测试开始“字样。需要测试的方法有多少个,该方法就会被调用多少次。
- @After注解:在需要测试的方法之后与逆行,在这里知识输出”测试结束“字样。需要测试的方法有多少个,该方法就会被调用多少次。
- asserEquals(Object o,Object o)方法:用来检测前后是否相等。在这里我们验证的时2+3这个方程式,如果等于5(预期结果)则不报错,如果结果不等于5则会报错。
- JUnit的很多注解和方法在这里无法一一讲到,但是之后实验的测试用例中会使用。
保存退出后,使用终端编译这个类:
javac -cp .:junit-4.12.jar:hamcrest-core-1.3.jar JUnitTestTest.java
4.运行测试
在命令行中运行测试。
在Ubuntu或MacOS上,执行下面的命令:
java -cp .:junit-4.12.jar:hamcrest-core-1.3.jar org.junit.runner.JUnitCore JUnitTestTest
测试结果:
结果中可以看到使用的JUnit插件的版本号,还有测试开始和结束的字样,以及测试消耗的时间。
如果测试不通过会报如下错,即断言中错误:
三、总结
JUnit的使用方便我们进行实验的单元测试,之后会将其应用于所有的实验的测试。