MacOS下的JUnit配置

MacOS下的JUnit配置

# Tech

研究了好多天终于把MacOS下的JUnit在终端中的配置搞定了,在整个过程中也学到不少东西,所以整理出来,方便其他朋友。

系统版本:MacOS X 10.8.2
JUnit版本:4.10

首先给出配置成功的检验方法,在终端中输入以下命令java org.junit.runner.JUnitCore

得到以下结果:

1
2
3
4
5
JUnit version 4.10
Time: 0.002
OK (0 tests)

输入java org.junit.runner.JUnitCore org.junit.tests.AllTests

得到以下结果:

1
2
3
4
5
JUnit version 4.10
..............................................................................................................................................................................................................................................................................................................I.I..........................................................................................................................................................................I..............................................................
Time: 5.085
OK (535 tests)

如果两次都能得到上面的结果,那么你的JUnit的配置是正确的。如果不能,请往下看。走你!

JUnit下载及准备

首先给出JUnit4.10的下载地址

注意我给出的是zip版本,里面包含了样例测试文档等内容,如果只下载jar版本的话,之前的测试结果也就不一定有效了。

下载下来后,解压缩,会得到一个junit4.10的文件夹,然后将这个文件夹(注意,整个文件夹)移动到/usr/share/java/下面。

然后我们来做两步额外动作,做完之后,我再来解释为什么这么做:

建立符号链接

打开终端,键入以下命令(如果提示输入密码,就输入系统的密码就好)

1
2
sudo ln -s /usr/share/java/junit4.10 /usr/share/junit
sudo ln -s /usr/share/java/junit4.10/junit-4.10.jar /usr/share/junit/junit.jar

这两个命令的意思是后者成为前者的符号连接。类似于windows下面的快捷方式,也就是说,以后我访问/usr/share/junit的时候就是访问了/usr/share/java/junit4.10 这样做的目的很简单,定义一些快捷方式,使得在目录与版本没关系。例如某天junit出现了5.0版本,我们就可以简单的将这两个符号链接的指向更改到新的版本,就可以直接使用新的junit了。MacOS系统内也大量使用了这样的机制,例如不同版本的JDK。

这一步完成后,需要将junit的相关文件加入CLASSPATH环境变量。CLASSPATH的作用,就是在我们执行java XXXX的时候,系统会自动去CLASSPATH里寻找需要的依赖包或者目标包。 举个简单的例子,我们自己写JAVA的时候,会用到import java.util.XXX, 为什么我们执行我们写的java文件时,系统就会知道去哪里找java.util.XXX呢?就是因为java.util.XXX所在的目录已经包含在CLASSPATH这个环境变量里了。所以,现在我们要想执行java org.junit.runner.JUnitCore org.junit.tests.AllTests, 就需要将org.junit.runner.JUnitCore, org.junit.tests.AllTests所在的目录加入CLASSPATH目录。

JUnit文件结构

下面来说一下JUnit的结构,打开你下载的JUnit的文件夹,你会发现里面有很多东西,重点来说两个

  • junit-4.10.jar 包含了JUnit的核心类,用来运行Junit测试。也就是说是JUnit的核心
  • org文件夹 这里面放了一些样例测试,用来测试JUnit是否能正常运转。

而我们之前提到的org.junit.runner.JUnitCore就在前者中, org.junit.tests.AllTests在后者中,所以,我们需要将 /usr/share/junit/usr/share/java/junit.jar 加入CLASSPATH变量。

下面讲如何设置环境变量:

先给出代码:

设置环境变量
1
2
export JUNIT_HOME="/usr/share/junit"
export CLASSPATH=$CLASSPATH:$JUNIT_HOME:$JUNIT_HOME/junit.jar

这代码的含义应该不用解释了吧。

对于Mac系统,有很多个地方可以设置环境变量

  • 1.修改/etc/bashrc文件
  • 2.修改/etc/profile文件
  • 3.修改~/.bash_profile文件(~代表当前用户的根目录)
  • 4….

将代码复制粘贴到以上任意一个文件里都可以设置环境变量。但其实是有区别的,1,2两种方法将会对系统全局产生影响,也就是说,所有的用户都会有影响,而3只会对当前用户产生影响,所以我比较推荐第三种,也比较安全。

修改文件的方式如下:

  1. 打开终端,敲入命令vim ~/.bash_profile
  2. 然后按一下键盘上的i,下面会变成Insert,现在你就可以修改这个文件了,修改完成后,按下ESC,然后shift+,输入wq,然后回车,OK,搞定,大功完成(这一步别问我为什么,想了解的可以自己google搜vim)。

提示:网上有些地方说把Junit放进/Library/Java/Extensions 或者/System/Library/Java/Extensions 的方法不可用,因为这样的话只有junit.jar会被加载,而测试类就不会被加载了。

Made with in London

Copyright © 2016 iLeoDo All Rights Reserved.