0

这是我的 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 内部运行良好),但它绝对不会从命令行运行或编译。

4

1 回答 1

3

首先,你混合了两件事:

  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 中定义包,请将其留空

于 2012-04-13T19:27:52.897 回答