Java 如何从终端使用junit
我正在尝试在终端中使用junit。 我有一个Abc.java类Java 如何从终端使用junit,java,junit,terminal,Java,Junit,Terminal,我正在尝试在终端中使用junit。 我有一个Abc.java类 class Abc{ public int add(int a, int b){ return a+b } } 我创建了一个类AbcTest.java import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit
class Abc{
public int add(int a, int b){
return a+b
}
}
我创建了一个类AbcTest.java
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
class AbcTest {
public void testAdd() {
System.out.println("add");
int a = 0;
int b = 0;
Abc instance = new Abc();
int expResult = 0;
int result = instance.add(a, b);
assertEquals(expResult, result);
}
}
当我运行命令时
javac -cp /usr/share/java/junit4.jar AbcTest.java
javac -cp /usr/share/java/junit4.jar *.java
我得到以下错误输出
AbcTest.java:16: error: cannot find symbol
Abc instance = new Abc();
^
symbol: class Abc
location: class AbcTest
AbcTest.java:16: error: cannot find symbol
Abc instance = new Abc();
^
symbol: class Abc
location: class AbcTest
2 errors
我试图用命令来构建项目
javac -cp /usr/share/java/junit4.jar AbcTest.java
javac -cp /usr/share/java/junit4.jar *.java
它正确地构建,但运行此命令
java -cp /usr/share/java/junit4.jar org.junit.runner.JUnitCore AbcTest
抛出以下错误
JUnit version 4.11
Could not find class: AbcTest
Time: 0.002
OK (0 tests)
您需要将当前目录(或编译类文件所在的目录)以及必要的jar文件添加到类路径中
java -cp /usr/share/java/junit4.jar:. org.junit.runner.JUnitCore AbcTest
供参考,当我尝试运行我使用的相同测试用例时(当前目录中的jar文件和类文件)
必须将AbcTest.java修改为
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
public class AbcTest {
@Test
public void testAdd() {
System.out.println("add");
int a = 0;
int b = 0;
Abc instance = new Abc();
int expResult = 0;
int result = instance.add(a, b);
assertEquals(expResult, result);
}
}
变化:
JUnit自己的文章详细介绍了如何从命令行运行JUnit。看看这个帖子:关于从TerminalHanks运行有很多建议和讨论,我在运行时没有添加当前目录。但是,当我将Abc.java移到src/Abc.java,将AbcTest.java移到test/AbcTest.java时,问题又回来了。您需要使用-cp选项将带有已编译类文件的目录添加到类路径。在上面的示例中,我使用了“.”表示当前目录。