我知道这是一个非常常见的问题,我已经进行了搜索,但不知怎的,它无法解决我的问题。
以下是问题背景:
为我的Junit测试用例创建了一个maven项目(使用eclipse与maven quickstart并使用Junit版本4.12)。以下是结构 -
这是Junit文件的内容 -
package JunitRnD.JunitArtifact;
import static org.junit.Assert.*;
import java.util.Stack;
import org.junit.Test;
public class AppTest {
@Test
public void emptyTest() {
Stack<String> stack = new Stack<String>();
assertTrue(stack.isEmpty());
}
}
项目位于此位置:
/Users/_eclipseWork/JunitArtifact
Junit测试从eclipse开始。但我想从命令行运行它。 所以我使用了以下命令 -
cd /Users/_eclipseWork/JunitArtifact
java -cp .:/Users/.m2/repository/junit/junit/4.12/junit-4.12.jar:/Users/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar org.junit.runner.JUnitCore JunitRnD/JunitArtifact/AppTest
我还为每个目录结构使用了其他变体,但始终收到以下错误 -
Caused by: java.lang.ClassNotFoundException: JunitRnD/JunitArtifact/AppTest
我在这里缺少什么?
PS:还尝试使用.java和.class扩展名。
答案 0 :(得分:2)
您需要运行Maven来运行测试。
mvn -Dtest=JunitRnD.JunitArtifact.AppTest test
或者,如果你想在没有Maven的情况下运行,你需要一个Test Runner。
看看:
https://github.com/junit-team/junit4/wiki/test-runners
你可以这样做:
java org.junit.runner.JUnitCore TestClass1 [...other test classes...]