test de compiler et exécuter avec JUnit en ligne de commande sur une seule classe Java

Mohammad Ganji:

J'ai un problème simple, je ne sais pas comment résoudre!

J'ai un seul fichier 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;
    }
}

et j'ai une classe de test simple à UserTest.javacôté de cette classe:

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));
    }
}

Je veux lancer cette classe de test pour la Userclasse. Je ne suis pas en utilisant comme IDEs IntelliJ ou Eclipse, donc je veux compiler le test de la ligne de commande linux, mais cette commande:

javac -cp .:"/usr/share/java/junit.jar" UserTest.java

me donne les erreurs suivantes:

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

Note: tout ce que j'ai vu sur Stackoverflow est de tester un seul fichier dans un projet ou la construction et les tests gradle et ..., mais je ne sais pas beaucoup sur Java et je ne pas besoin de savoir beaucoup, je juste besoin de connaître la façon la plus simple pour créer et exécuter un test pour une seule classe Java.

Note2: J'ai installé avec JUnit apt install junitet installé la junit-3-8-2version.

Note3: J'ai des problèmes lorsque vous essayez de compiler ma classe de test, je ne l' ai pas encore atteint le stade où je peux exécuter les tests!

Andreas:

Après beaucoup d'essais et d' erreurs dans la section des commentaires tout à fait, la cause était un vieux JUnit 3.8.2 dépendance. Les versions 3.x ont utilisé un espace de noms différent qui a été changé dans 4.x pour org.junit.

Par conséquent, les classes où ne se trouvent pas lors de la compilation du test.

Pour déboguer ces problèmes décompressé le pot avec unzipLinux peut être utile.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=213170&siteId=1
conseillé
Classement