首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在命令行中使用JUnit在单个Java类上编译和运行测试

在命令行中使用JUnit在单个Java类上编译和运行测试
EN

Stack Overflow用户
提问于 2018-10-10 04:26:11
回答 1查看 2.2K关注 0票数 3

我有一个简单的问题,我不知道如何解决!

我只有一个Java文件User.java

代码语言:javascript
复制
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;
    }
}

在这个类旁边,我有一个简单的测试类UserTest.java

代码语言:javascript
复制
import static org.junit.Assert.assertEquals;
import org.junit.Test;


public class UserTest {
    @Test
    public void evaluatesExpression() {
        User user = new User("foo");
        User user2 = new User("bar");
        user.addFriend(user2);
        assertEquals(true, user.isFriendsWith(user2));
    }
}

我想为User类运行此测试类。我没有使用像IntelliJ或Eclipse这样的IDE,所以我想从linux命令行编译测试,但命令如下:

代码语言:javascript
复制
javac -cp .:"/usr/share/java/junit.jar" UserTest.java

显示以下错误:

代码语言:javascript
复制
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类创建和运行测试的最简单方法。

Note2:我用apt install junit安装了junit,它安装了junit-3-8-2版本。

Note3:我在尝试编译我的测试类时遇到了问题,我甚至还没有达到可以运行测试的阶段!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-10 05:10:52

在评论部分进行了相当多的尝试和错误之后,根本原因是旧的JUnit 3.8.2依赖项。3.x版本使用了不同的名称空间,该名称空间在4.x中更改为org.junit

因此,在编译测试时找不到类。

要调试这类问题,在Linux上使用 unzip 解压jar可能会很有帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52728822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档