2013-02-12 3 views
0

Я пытаюсь запустить тест JUnit случае из командной строки
Код я следовал установлен бен директорииНевозможно запустить тест JUnit из командной строки

c:/eclipse/workspace/sample/bin> java -cp C:\Ram Doc\eclipse\plugins\org.junit_4.8.2.v4_8_2_v20110321-1705.junit.jar C:\Ram Doc\eclipse\workspace\Script_Bvt\bin org.junit.runner.JUnitCore login_sanity(That's my class Name) 

Сообщение об ошибке является

C:\Ram Doc\eclipse\workspace\Script_Bvt\bin>java -cp C:\Ram Doc\eclipse\plugins\ 
org.junit_4.8.2.v4_8_2_v20110321-1705.junit.jar java org.junit.runner.JUnitCore 
login_sanity 
Exception in thread "main" java.lang.NoClassDefFoundError: Doc\eclipse\plugins\o 
rg/junit_4/8/2/v4_8_2_v20110321-1705/junit/jar 
Caused by: java.lang.ClassNotFoundException: Doc\eclipse\plugins\org.junit_4.8.2 
.v4_8_2_v20110321-1705.junit.jar 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: Doc\eclipse\plugins\org.junit_4.8.2.v4_8_2_v20110 
321-1705.junit.jar. Program will exit. 

Если я держать login_sanity в другом месте и выполнить:

C:\Selenium>javac -cp "C:\Selenium\junit4.10\junit4.10\junit-4.10.jar;." org.junit.runner.JUnitCore login_sanity 

Я получаю п ollowing ошибка:

Class names, 'org.junit.runner.JUnitCore,login_sanity', are only accepted if 
annotation processing is explicitly requested 

Ниже показаны мои полные шаги: enter image description here

+0

Последний скриншот показывает, что вы не скомпилировали класс login_sanity. Это связано с ошибкой, которую вы получаете при компиляции (т. Е. Выполненном javac). Посмотрите на мои более поздние комментарии, где я объясню, почему это не удалось скомпилировать - это потому, что у вас нет суффикса .java. После компиляции класса вы увидите файл login_sanity.class в вашем текущем каталоге. Теперь вы можете запустить JUnitCore с именем login_sanity в качестве аргумента. – pestrella

+0

Если я запустил это, я получаю 25 ошибок: javac -cp "C: \ Selenium \ junit4.10 \ junit4.10 \ junit-4.10.jar ;." login_sanity.java Я не чувствую, что должен включать местоположение, хотя я и пытался, что > javac -cp "C: Selenium \ junit4.10 \ junit4.10 \ junit-4.10.jar; C: Selenium \; «. login_sanity.java и даже без обратной косой черты, но я думаю, что это нужно «\», сообщение об ошибке «символ», я попробовал почти все возможные комбинации. – Riy1234

+0

Если у вас возникли ошибки при компиляции java-файла, то у вас есть проблемы с фактическим кодом в login_sanity. Боюсь, я не могу оказать дальнейшую помощь, если не увижу код, но я думаю, что StackOverflow на самом деле не место для такого обсуждения. Я предлагаю попросить коллегу провести вас через это. Удачи! :) – pestrella

ответ

1

В общем работает класс Java с помощью командной строки осуществляется следующим образом (на Windows, который в этом случае вы используете):

java -cp "jar1;jar2;dir\*" my.app.package.MainClass my_arguments

Из чего я могу судить, вы пытаетесь выполнить свой тестовый класс, login_sanity, через JUnitCore. Другими словами, вы выполняете класс JUnitCore со своим тестовым классом в качестве аргумента; и вам нужна библиотека junit.jar, чтобы запустить класс JUnitCore.

Чтобы выполнить эту команду, вам потребуется:

  1. поставил junit.jar библиотеку в вашем пути к классам и;
  2. указать главный класс, который вы хотите выполнить, JUnitCore, наряду с аргументами, которые вы хотите, чтобы перейти к основному классу, т.е. login_sanity

Так как это:

java -cp "C:\path\to\junit.jar;C:\path\to\bin\*" org.junit.runner.JUnitCore login_sanity

Вышеуказанная команда предполагает, что ваш класс login_sanity находится в пакете по умолчанию, то есть без пакета, и в каталоге bin.

Если ваш класс не в пакете в по умолчанию, то есть вы объявили пакет внутри login_sanity класса, то вам нужно будет использовать его полное имя в командной строке. Вот пример:

Скажите, что ваш класс находится в следующем пакете: my.app.login. Другими словами, первые несколько строк из вашего класса Java является:

package my.app.services; 

public class login_sanity { 
    /* your tests go here */ 
} 

В этом случае вы должны выполнить JUnitCore так:

java -cp "C:\path\to\junit.jar;C:\path\to\bin\*" org.junit.runner.JUnitCore my.app.services.login_sanity

Как и в сторону, типичный Java конвенция назвать свои классы верблюд, т.е. LoginSanity.

+0

java -cp "C: \ Selenium \ junit4.10 \ junit4.10 \ junit-4.10.jar; C: \ Ram Doc \ eclipse \ workspace \ Script_Bvt \ bin * "org.junit.runner.JUnitCore login_sanity === JUnit version 4.10 не удалось найти класс: login_sanity – Riy1234

+0

Я пробовал со всем классом, в котором объявлен даже основной метод. найдите класс «Теперь, что мне делать?» – Riy1234

+0

Основной метод, который вы пытаетесь запустить, - это JUnitCore, который принимает имена классов в качестве своих аргументов. Имя класса, которое вы пытаетесь передать в JUnitCore, - login_sanity. Ошибка «Count not find class: login_sanity "указывает, что JUnitCore не смог найти класс login_sanity. Две вещи для проверки: 1. что login_sanity.java находится в вашем пути к классам, то есть« C: \ Doc \ eclipse \ workspace \ Script_Bvt \ bin \ "и 2 . Вы должны иметь конечная обратная косая черта на вашем пути, так что измените то, что у вас есть, «C: \ Ram Doc \ eclipse \ workspace \ Script_Bvt \ bin \ *" – pestrella

0

Add JUnit банку к классам
Add тестируемые классы к классам
Run junit.textui.TestRunner TestClass

Java -classpath; C:. \ Путь \ name.jar; c: \ path \ to \ bin org.junit.runner.JUnitCore nameofclass

Смежные вопросы