无法从命令行运行Java单元测试代码

时间:2014-01-31 11:30:47

标签: java

我是Java新手。我想在命令行上运行Java Unit测试,并最终从PHP脚本运行它。我的代码片段如下:

package com.src.test;

import java.io.File;
import java.io.FileWriter;
import java.util.concurrent.TimeUnit;
import org.junit.*;

import static org.junit.Assert.*;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import com.thoughtworks.selenium.Selenium;

public class First {
......
}

Windows上的上述文件的完整路径是 D:\Users\XXX\workspace\SeleniumTest\bin\com\src\test

当我将目录更改为bin并运行java com.src.test.First时,我收到一条错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.getMethod0(Unknown Source)
        at java.lang.Class.getMethod(Unknown Source)
        at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver
        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)
        ... 6 more

我做错了什么?我已尝试运行java com.src.test.First.class,但收到错误Error: Could not find or load main class com.src.test.First.class

1 个答案:

答案 0 :(得分:1)

您应该使用-d选项编译代码,以指定编译文件的放置位置。

如果你已经这样做了,你需要落后于.\com。如果不是,则应使用-cp选项运行,显示文件的位置。如果你落后.\bin,它应该是这样的:

java -cp .\bin com.src.test.First

此外,您不应在课程名称后面写.class


修改

当我说你需要落后于.\something时,我的意思是你应该在包含文件夹“something”的目录中。此外,当目录不在java类路径中时,您只需要使用-cp指定额外的类路径。您始终可以将其添加到环境变量CLASSPATH中。有关此主题的更多信息here