Как запустить тесты Junit из командной строки в Windows без пакета? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть папка (в которой я запускаю все команды) с именем learning.Внутри этой папки у меня есть два файла, один из которых называется Driver.java, который представляет собой простой основной класс с простым методом hello world.Другой файл - DriverTest.java, который имеет этот код, как показано ниже.

import static org.junit.Assert.*;
import org.junit.Test;

public class DriverTest {
    @Test
    public void test() {
        fail("Not yet implemented");
    }
}

Кроме этого у меня есть JUnit 4.13-бета-jar внутри той же папки learning.

Теперь яоткройте командную строку в Windows, перейдите в папку learning и запустите эту команду.

javac -cp junit-4.13-beta-1.jar;hamcrest-core-2.1-rc4.jar;. *.java

Она не выдала мне никаких ошибок, поэтому она скомпилировала java-файлы Driver и DriverTest.

Теперь я пытаюсь запустить тест JUnit с помощью этой команды.

java -cp junit-4.13-beta-1.jar;hamcrest-core-2.1-rc4.jar;. org.junit.runner.JUnitCore DriverTest

Но я получаю эту ошибку:

JUnit version 4.13-beta-1
Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at org.junit.runner.Computer.getSuite(Computer.java:28)
        at org.junit.runner.Request.classes(Request.java:77)
        at org.junit.runner.JUnitCommandLineParseResult.createRequest(JUnitCommandLineParseResult.java:116)
        at org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
        at org.junit.runner.JUnitCore.main(JUnitCore.java:36)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 17 more

Почему мой HamCrest банка не найдена?Это прямо там, в той же папке, верно?

1 Ответ

0 голосов
/ 17 декабря 2018

Вы только добавили текущий каталог в classpath для компиляции.Это также необходимо сделать для вызова теста, т.е.;. в Windows :. в Linux

java -cp junit-4.13-beta-1.jar;. org.junit.runner.JUnitCore DriverTest
...