在单个Java类的命令行中使用JUnit编译并运行测试
我有一个简单的问题,我不知道如何解决 我有一个Java文件在单个Java类的命令行中使用JUnit编译并运行测试,java,junit,command-line,Java,Junit,Command Line,我有一个简单的问题,我不知道如何解决 我有一个Java文件User.Java: import java.util.Vector; public class User { private String name; private Vector<User> friends; public User(String name) { this.name = name; this.friends = new Vector<>
User.Java
:
import java.util.Vector;
public class User {
private String name;
private Vector<User> friends;
public User(String name) {
this.name = name;
this.friends = new Vector<>();
}
public void addFriend(User newfriend) {
friends.add(newfriend);
}
public boolean isFriendsWith(User friend) {
return friends.indexOf(friend) != -1;
}
}
我想为User
类运行这个测试类。
我没有使用IntelliJ或Eclipse之类的IDE,所以我想从linux命令行编译测试,但是这个命令:
javac -cp .:"/usr/share/java/junit.jar" UserTest.java
给出了以下错误:
UserTest.java:1: error: package org.junit does not exist
import static org.junit.Assert.assertEquals;
^
UserTest.java:1: error: static import only from classes and interfaces
import static org.junit.Assert.assertEquals;
^
UserTest.java:2: error: package org.junit does not exist
import org.junit.Test;
^
UserTest.java:6: error: cannot find symbol
@Test
^
symbol: class Test
location: class UserTest
UserTest.java:11: error: cannot find symbol
assertEquals(true, user.isFriendsWith(user2));
^
symbol: method assertEquals(boolean,boolean)
location: class UserTest
5 errors
注意:我在Stackoverflow上看到的一切都是关于在项目中测试单个文件或使用gradle和…,但我对Java了解不多,也不需要了解太多,我只需要知道为单个Java类创建和运行测试的最简单方法
注2:我已经安装了junit和apt install junit
,并且它安装了junit-3-8-2
版本
注3:我在尝试编译我的测试类时遇到问题,我甚至还没有达到运行测试的阶段 在评论部分进行了大量的尝试和错误之后,根本原因是老的JUnit 3.8.2依赖关系。3.x版本使用了不同的名称空间,在4.x中更改为
org.junit
因此,在编译测试时找不到的类
在Linux上用
解压解压jar可能会有帮助。
主题外,但永远不要使用向量@shmosel谢谢,但这是为项目提供给我的代码的一部分!javac-d/absolute/path/for/compiled/classes-cp/absolute/path/to/junit-4.12.jar/absolute/path/to/TestClassName.java的可能重复项,如上述答案中所述。junit-3-8-2
是旧方法。它不使用org.junit名称apce afair。至少使用4.x。。根本原因是,在类路径上没有org.junit.Assert
,因为您使用的libs是在junit团队进行重命名之前。但是您尝试运行的测试使用4.x代码。在windows上,将.jar重命名为.zip并打开它。。应在未安装任何其他软件的情况下工作。我们使用这种技术检查了很多战争(它们也只是zip文件)
UserTest.java:1: error: package org.junit does not exist
import static org.junit.Assert.assertEquals;
^
UserTest.java:1: error: static import only from classes and interfaces
import static org.junit.Assert.assertEquals;
^
UserTest.java:2: error: package org.junit does not exist
import org.junit.Test;
^
UserTest.java:6: error: cannot find symbol
@Test
^
symbol: class Test
location: class UserTest
UserTest.java:11: error: cannot find symbol
assertEquals(true, user.isFriendsWith(user2));
^
symbol: method assertEquals(boolean,boolean)
location: class UserTest
5 errors