0

これが私の JUnit テスト クラスです。

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

まず、次の 2 つを混合します。

  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 に答える