0

免責事項: 私は Java と emma を初めて使用します。詳細:

  • 私は emma をインストールし、いくつかの例を試しました。問題はありません。
  • カバレッジ レポートを取得したい多数のファイルを含む Java プロジェクトがあります。
  • 「javac -d out *.java」と入力します。エラーなし。
  • 「java -cp out Main」と入力します。プログラムは正常に実行され、期待される出力が得られます。
  • 「java emmarun -cp out Main」と入力します。私は以下を取得します:

    emmarun: [MAIN_METHOD_NOT_FOUND] アプリケーション クラス [Main] には、実行可能な public main() メソッドがありません スレッド "main" com.vladium.emma.EMMARuntimeException で例外: [MAIN_METHOD_NOT_FOUND] アプリケーション クラス [Main] には、実行可能な public main() メソッドがありません) com.vladium.emma.rt.AppRunner._run(AppRunner.java:546) のメソッド com.vladium.emma.rt.AppRunner.run(AppRunner.java:97) の com.vladium.emma.runCommand.run のメソッド(runCommand.java:247) emmarun.main(emmarun.java:27) で 原因: java.lang.IllegalAccessException: Class com.vladium.emma.rt.AppRunner$Invoker can't access a member of class s Main with modifiers java.lang.reflect.AccessibleObject.slowCheckMemberAccess (不明なソース) の sun.reflect.Reflection.ensureMemberAccess (不明なソース) の "public static"。reflect.AccessibleObject.checkAccess(不明なソース) の java.lang.reflect.Method.invoke(不明なソース) com.vladium.emma.rt.AppRunner$Invoker.run(AppRunner.java:655) で java.lang.Thread .run(不明なソース)

私の「Main.java」ファイルは次のようになります。

public class Main {
    public static void main( String[] args ) {
        NetworkSimplexTest nst = new NetworkSimplexTest();
        nst.test();
    }
}

すべてのコードを投稿しますが、かなり長いです。私が試した単純な例は問題なく動作します。例のように、emma は自動的に計測し、カバレッジ レポートを作成します。

エマは私の「メイン」を見つけることができないようですが、通常の Java は見つけることができます。私は何が欠けていますか?

4

1 に答える 1

0

Emma は、クラスが として定義されていることを期待しpublicますが、これは元のコードにはありませんでした。

于 2011-09-28T18:14:06.587 に答える