我想在Ubuntu上安装Junit。我已经让Java工作了,所以我可以编译java文件。但是,junit给了我一些问题(无法让基本测试用例证明安装工作正常)。
这是我做的:
sudo apt-get install junit
现在,当我输入which junit
时,它给了我/usr/bin/junit
同样,通过另一个堆栈交换帖子,我发现我的junit.tar文件在这里:
/usr/share/java/junit.jar
我将junit.jar文件的路径添加到我的CLASSPATH中,因为网站(http://junit.org/junit4/faq.html#started_2)说“确保JUnit安装目录在您的CLASSPATH上”
我在.bashrc中将上面的第二条路径添加到了我的CLASSPATH中
所以,当我运行echo $CLASSPATH
:我得到/usr/share/java/junit.jar:/usr/bin
然而,当我尝试运行java org.junit.runner.JUnitCore org.junit.tests.AllTests
时
为了测试我已正确安装和配置JUnit,我收到此错误:
Error: Could not find or load main class org.junit.runner.JUnitCore
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore
我是一个初学者,我只是在学习Ubuntu,所以任何帮助都会非常感激。
问题是你已经安装了JUnit 3.8(参见https://packages.ubuntu.com/artful/junit)。并且JUnit 3.8不包含任何软件包org.junit.*
,因为它们是在JUnit 4中引入的。理论上你可以通过使用junit4
(将安装JUnit 4.12)安装软件包apt-get
来解决这个问题。
但这是错误的方法,您应该学习如何使用Maven或Gradle(或两者),这将自动为您下载依赖项,并带走一些编制的苦差事(授予,以换取更高的学习曲线) 。
或者,如果您真的想手动执行此操作,请养成从项目网站下载依赖项的习惯,并在编译和执行期间显式指定类路径。依赖于系统包管理器是错误的方法(错误的版本,应用程序/项目之间的不同版本要求,不在存储库中的库等)。依赖于CLASSPATH
环境变量是非常脆弱的(错误版本,在类路径上具有库的意外效果等),并且由于大多数执行Java应用程序的方法甚至不使用它,因此学习它是错误的。
TLDR,你应该学习Maven或Gradle的基础知识。
正如Mark在评论中提到的那样,使用Gradle来管理您的包。在IntelliJ中,转到您的build.gradle
为您的应用程序。在依赖项对象中添加以下内容
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}