如何从命令行执行Junit测试用例

时间:2016-08-25 19:12:53

标签: java command-line junit

我知道这是一个非常常见的问题,我已经进行了搜索,但不知怎的,它无法解决我的问题。

以下是问题背景:

为我的Junit测试用例创建了一个maven项目(使用eclipse与maven quickstart并使用Junit版本4.12)。以下是结构 - enter image description here

这是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

这是目录的内容 - enter image description here

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扩展名。

1 个答案:

答案 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...]