【问题标题】:Randoop on windowns -No class with the name "ParserConfigurationSettings" found on the classpathWindows 上的 Randoop - 在类路径中找不到名为“ParserConfigurationSettings”的类
【发布时间】:2016-12-29 03:20:31
【问题描述】:

您好,在 MS-DOS 中输入以下命令后出现以下错误:

    C:\Users\Aline\Desktop\ClassesdoEstudodeCaso\ProjetosSelecionados\xerces-2.10.0\bin\org\apache\xerces\util>java -ea -classpath randoop.jar randoop.main.Main gentests --testclass=ParserConfigurationSettings --timelimit=60

policy = sun.security.provider.PolicyFile@10f87f48
    Error: No class with name "ParserConfigurationSettings" found on the classpath
           This is most likely a problem with the classpath. It may be wrong, or
           it is formatted incorrectly on the command line. The other possibility
           is that the wrong class name is given.
    Exiting Randoop.

并且“C:\Users\Aline\Desktop\ClassesdoEstudodeCaso\ProjetosSelecionados\xerces-2.10.0\bin\org\apache\xerces\util”已经在类路径中

【问题讨论】:

    标签: java windows command-line classpath randoop


    【解决方案1】:

    正如您引用的 Randoop 错误消息中所述,您错误地指定了类路径。

    您的命令行包含-classpath randoop.jar。此类路径不包含类 ParserConfigurationSettings

    Randoop ManualRunning Randoop 部分所示,类路径需要同时包含 Randoop 和正在测试的代码。

    【讨论】:

      【解决方案2】:

      我试过命令

      java -ea -classpath randoop.jar;C:\Users\Aline\Desktop\ClassesdoEstudodeCaso\ProjetosSelecionados\xerces-2.10.0\bin\org\apache\xerces\util\ randoop.main.Main gentests --testclass=ParserConfigurationSettings --timelimit=10
      

      但它不起作用,尝试了一些其他命令我发现这个有效:

      java -ea -classpath randoop.jar;C:\Users\Aline\Desktop\ClassesdoEstudodeCaso\ProjetosSelecionados\xerces-2.10.0\bin\ randoop.main.Main gentests --testclass=org.apache.xerces.util.ParserConfigurationSettings --timelimit=60
      

      【讨论】:

      • 类路径始终包含您希望将包名称的第一部分(例如,org)视为子目录的目录,并且 Randoop 期望类名称由包裹名字。所以,第一个在两个方面都有缺陷。
      【解决方案3】:

      要解决此问题,请按照以下步骤操作:-

      适用于linux/unix和mac-os

      您可以将其映射到相应的窗口

      1. 检查JAVA_HOME是否正确指定,如果没有,请导出JAVA_HOME=<java home dir> 执行echo $JAVA_HOME 并在系统中添加变量PATH

        导出 PATH=$PATH:$JAVA_HOME/bin

      2. 点击link。要下载 Randoop,请在您的系统上解压。

      3. RANDOOP_PATHRANDOOP_JAR设置为环境变量并添加到系统PATH

        导出 RANDOOP_PATH= 导出 RANDOOP_JAR=$RANDOOP_PATH/randoop-all-.jar 导出 PATH=$RANDOOP_PATH:$RANDOOP_JAR:$PATH

      4. 转到并创建 /bin/src/main/java/bin/src/test/java 文件夹

      5. 打开终端并执行命令java -ea -classpath $RANDOOP_JAR randoop.main.Main help

      预期输出

      Randoop for Java 版本。

      Randoop 是一个为 Java 创建单元测试的命令行工具。它 接受下面列出的命令之一。如需用户手册,请 访问https://randoop.github.io/randoop/manual/index.html

      键入 `help' 后跟命令名称以查看文档。

      命令:

      gentests -- 为一组类生成单元测试。

      help -- 显示给定命令的帮助消息。

      Randoop 设置已完成并可以使用。

      1. 如果您想在 XYZ 类上执行 Randoop 以生成测试用例,请按照以下步骤操作

      6.1 XYZ.class 是包名为com.demo 的类文件 然后在$RANDOOP_HOME/bin/src/main/java/ 下创建文件夹/com/demo$RANDOOP_HOME/bin/src/main/java/com/demo/ 并将XYZ.class 文件放在这里。

      6.2 现在从终端执行以下命令

      java  -ea -classpath $RANDOOP_PATH/bin/src/main/java:$RANDOOP_JAR:$JAVA_HOME/bin randoop.main.Main gentests --testclass=com.demo.XYZ --timelimit=60  --outputlimit=500 --inputlimit=500 --testsperfile=500 --error-test-basename=XYZError --regression-test-basename=XYZRegression --junit-package-name=com.demo --junit-output-dir=$RANDOOP_PATH/bin/src/test/java
      

      6.3 完成 6.2 后转到 $RANDOOP_PATH/bin/src/test/java 并验证文件是否已创建!!!

      6.4 现在您可以使用Junit.jar 执行此测试。

      【讨论】:

      • 嗨!看起来您的整个帖子都被格式化为代码,请尝试使用以下指南进行格式化:stackoverflow.com/help/formatting 使其更具可读性。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 2016-02-04
      • 2017-09-12
      • 2014-05-29
      • 2013-07-22
      • 1970-01-01
      相关资源
      最近更新 更多