当JUnit类有多个导入时,如何从Windows CMD窗口运行JUnit测试?

这是我的JUnit测试类:package com.bynarystudio.tests.storefront;

import java.util.List; import org.junit.Assert; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import com.bynarystudio.tests.BaseWebTest; public class SmokeTests extends BaseWebTest { @Test public void StoreFrontMegaNavTest(){ webDriver.get(default_homepage); String source = webDriver.getPageSource(); Assert.assertTrue(source.contains("some text")); } } 

如何从命令行运行此测试? 当我尝试使用时从其目录中运行它

 java -cp junit.textui.TestRunner SmokeTests.java 

我收到以下错误

 Could not find the main class: SmokeTests.java. Program will exit. 

我认为这与我的类路径设置不正确这一事实有关。 但我不知道因为我是Java的新手。 来自.NET,C#和Visual Studio,整个类路径事情毫无意义。 即使我已将所有文件正确添加到Eclipse中的项目中(我知道因为Eclipse内部的测试运行良好),它绝对不会从命令行运行或编译。

首先,你要混合两件事:

  1. 首先,您必须使用javac命令编译项目。 因此,您将获得一组.class文件(而不是.java – >这是源代码)

  2. 然后,您可以使用java命令运行代码:java -cp classPath yourpackage.SmokeTests

哪里:

classPath – 是编译类所在的目录或jar文件列表,如果你使用“;”将多个条目分隔开来。 (windows)或“:”(Linux)

所以你的classPath可以是:-cp .; c:/ jars / *; deps

这意味着您的类路径将包含:

  • 当前目录
  • 来自c:/ jars / *的所有jar文件
  • 来自工作目录中的deps目录中的所有jar文件

所以完整的命令可以是:

java -cp。; c:/ jars / *; deps SmokeTests

yourpackage – 是SmokeTests类的包,如果你没有在SmokeTests.java中定义包,请将其留空