Скомпилируйте и запустите тестирование с помощью JUnit в командной строке на одном классе Java - PullRequest
0 голосов
/ 09 октября 2018

У меня есть простая проблема, которую я не знаю, как решить!

У меня есть один файл 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<>();
    }

    public void addFriend(User newfriend) {
        friends.add(newfriend);
    }

    public boolean isFriendsWith(User friend) {
        return friends.indexOf(friend) != -1;
    }
}

, и у меня есть простой тестовый класс UserTest.java рядом с этим классом:

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.Я не использую IDE, такие как IntelliJ или Eclipse, поэтому я хочу скомпилировать тест из командной строки 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: У меня проблемы при попытке скомпилировать моего тестового класса, я даже не достиг стадии, когдаЯ могу запустить тесты!

1 Ответ

0 голосов
/ 10 октября 2018

После большого количества проб и ошибок в разделе комментариев, основной причиной была старая зависимость JUnit 3.8.2.Релизы 3.x использовали другое пространство имен, которое было изменено в 4.x на org.junit.

Поэтому классы, которые не были найдены при компиляции теста.

Для отладки такихмогут помочь проблемы с распаковкой jar с unzip в Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...