1

クラスParserTestはパッケージ内にあり、次のmyproject.testsディレクトリ構造に格納されています。

.
└── myproject
    └── tests
        └── ParserTest.class

現在のシェル セッションの CLASSPATH を設定します ( -cpJava 呼び出しをクリーンに保つためのオプションはありません)。

export CLASSPATH=.:/usr/local/lib/java/junit-4.12.jar:/usr/local/lib/java/hamcrest-core-1.3.jar

JUnit ランナーを呼び出し、テスト クラスを引数として渡します。

java org.junit.runner.JUnitCore myproject/tests/ParserTest

このエラーがスローされます:

...
1) initializationError(org.junit.runner.JUnitCommandLineParseResult)
java.lang.IllegalArgumentException: Could not find class [myproject/tests/ParserTest]
...
4

1 に答える 1

0

org.junit.runner.JUnitCore.の代わりに、ディレクトリとクラスの間のセパレータとして使用する引数が必要です/

コールトレースは次のようになり、次で終わりますjava.lang.Class.forName(classname)

JUnitCore.main(args)
└── JUnitCore.runMain(args)
    └── JUnitCommandLineParseResult.parse(args)
        └── new JUnitCommandLineParseResult().parseArgs(args);
            └── JUnitCommandLineParseResult.parseParameters(...);
                └── ...
                    └── org.junit.internal.Classes.getClass(arg);
                        └── java.lang.Class.forName(className);

JavaDoc にjava.lang.Class.forName(String className)は次のように書かれています。

パラメータ: className -目的のクラスの完全修飾名。

そして Java では、完全修飾名は.notで記述され/ます。

于 2015-10-22T18:35:07.773 に答える