0
  1. junit で提供されているサンプル テストを (任意のディレクトリから) 実行できます。これは、私のjunitのインストールが完全に問題ないことを示唆していると思います。

  2. junit テストをコンパイルするには、他の Java ファイル、つまり javac fileName.java と何ら変わりはないと思います。

  3. テスト ファイル (.java と結果の .class) は c:\parent\child にあります。明らかに、.java ファイルをコンパイルするために、最初の行に package ステートメントがあります。この後、パブリック クラスの fileName 定義 extends TestCase {} があります。ファイルは、警告やエラーなしでコンパイルされます。

  4. 私が試みたとき(fileNameが存在するc:\parent\childディレクトリで、.javaと.classの両方):

Java org.junit.runner.JUnitCore parent.child.fileName、次のようになります: JUnit バージョン 4.1 クラスが見つかりませんでした: parent.child.fileName 時間: 0 OK (0 テスト)

  1. コマンドからparent.childを完全に削除しても、違いはありません。

  2. 私の CLASSPATH 環境変数は c:\parent\junit\junit-4.1.jar;c:\parent\junit; に設定されています。

  3. -cp c:\ または c:\parent\child などを指定して実行しようとすると、エラーが発生します。

4

3 に答える 3

4

Java パッケージ名は実際にはクラス名の一部であり、*.classファイルを検索する特定の方法でも使用されます。Java が という名前のクラスを見つけたい場合、Java は という名前parent.child.fileNameのファイルを探します。parent/child/fileName.classつまり、 という名前のディレクトリ内の という名前のディレクトリでファイルを探しchildますparentparentディレクトリが見つかるようにクラスパスを指定する必要があります。

 java -cp "c:/junit/junit.jar;c:/" org.junit.runner.JUnitCore parent.child.fileName

クラス パス (-cp) 引数は、Java がクラスを検索するすべての場所を指定する必要がありjunit.jarますjunit。セミコロン「;」は、クラス パスのエントリを区切るために使用されます (Windows を使用していると仮定します。実際のコンピュータでは代わりに ":" です)。クラス パスの "c:/" エントリは、parentディレクトリを見つけるために使用されるエントリです。したがって、あなたのクラス。

于 2013-03-21T13:15:55.527 に答える
-1

JUnit Runner を使用して、コンパイルするだけでなく、IDE の外部でテストを実行する必要があります。

java -cp lib/junit.jar;sw.jar org.junit.runner.JUnitCore your.package.fileName

この行を自分のプロジェクト構造に更新してください。

于 2013-03-21T13:16:33.083 に答える
-2

一般に、ant/maven/gradle などのビルド システムを使用するか、IDE (IntelliJ/eclipse/Netbeans) 内から単体テストを実行する方がはるかに簡単です。

于 2013-03-21T13:18:07.040 に答える