当前位置: 首页 > 知识库问答 >
问题:

Ant junitlauncher任务导致“无法启动虚拟机内测试”错误

陆耀
2023-03-14

我尝试使用Ant构建脚本版本1.10.12和junitlauncher任务运行单元测试。在这一点上,我已经对所有内容进行了三到四次验证,甚至在github上查看了该任务的源代码[https://ant.apache.org/manual/Tasks/junitlauncher.html][1].

错误是

无法启动 VM 内测试

并且堆栈跟踪为

在org . Apache . tools . ant . taskdefs . optional . junitlauncher . confined . junitlauncher task . launchviareflection(junitlaunchchertask . Java:223)在org . Apache . tools . ant . taskdefs . optional . junitlauncher . confined . junitlauncher task . execute(junitlauncher task . Java:105)在org . Apache . tools . ant . Unknown element . execute(Unknown element . Java:299)在sun . reflect . generatedmethodaccessor 7 .

根据我所做的研究,在错误发生的地方检查源代码中的方法是没有帮助的,并且错误消息的意义更小并且完全没有记录。

脚本中的目标

 <target name="unittest" description="Run units tests">
      <junitlauncher haltOnFailure="false" printSummary="true">
          <classpath refid="junit.class.path"/>
          <classpath refid="mcwr.runtime.module.classpath"/>
          <testclasses outputdir="testreports">
              <fileset dir="${mcwr.testoutput.dir}">
              </fileset>
              <listener type="legacy-brief" sendSysOut="true"/>
              <listener type="legacy-xml" sendSysErr="true" sendSysOut="true"/>
          </testclasses>
      </junitlauncher>
  </target>

在这一点上,我完全卡住了。这个错误意味着什么,我该如何解决它?

这是源代码(方法是“LaunchViaReflection”https://github.com/apache/ant/blob/master/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/confined/JUnitLauncherTask.java

共有1个答案

仲孙疏珂
2023-03-14

我碰到了这个问题,最后解决了。您可能会在stacktrace中得到一个关于XML侦听器的错误。由定义的目录

<testclasses outputdir="DIRECTORY">

必须提前存在。您可以添加类似的内容

<mkdir dir="DIRECTORY"/>

到你的“单位测试”目标的顶部。

另一件事是“DIRECTORY”值似乎需要TestClass的绝对路径,因此

<mkdir dir="testreports"/>

可能会在basedir中创建您的目录,

<testclasses outputDir="testreports">

会导致错误。

您可以使用“位置”而不是“价值”创建属性

<property name="testreports" location="testreports" />
<testclasses outputDir="${testreports}">

或使用base dir属性给出绝对路径

<testclasses outputDir="${basedir}/testreports">
 类似资料:
  • 我已经正确设置了与Java相关的环境变量。Java工作得很好。我已经将.jar文件与java SDK关联起来。 从cmd调用javaw-xms128m-xmx512m-jar filename.jar命令时,我得到一个java虚拟机启动程序错误:无法访问jarfile 然后我在jar所在的文件夹上调用了相同的命令,我没有错误,但是程序的gui仍然没有打开。

  • 问题内容: Eclipse昨天运行良好(自从大约一年前安装以来一直如此)。现在突然之间,我在启动时遇到以下错误: 我没有更改计算机上与Eclipse / Java相关的任何内容,但昨天对计算机应用了Windows更新,因此这可能与它有关(但我看不到任何会影响Java的东西)。我看过所有其他文章,这些文章都向您的PATH添加了一些东西,或者向Eclipse ini添加了-vm选项(无法使它正常工作)

  • 我已经访问了所有与我的问题相关的现有问题,但我仍然有一个问题。所有安装都正确安装。我使用的是最新的Netbeans版本。在执行程序后,我出现了以下错误:

  • 我正在研究java wicket框架和Apache Tomcat。当我尝试 启动tomcat时出现了问题,它显示Java Virtual Machine Launcher弹出窗口“无法创建 Java Virtual Machine”。 单击弹出窗口上的“OK”按钮后,它显示控制台上的错误。 初始化虚拟机时出错。 无法为对象堆保留足够的空间。 请给我任何参考或建议。 提前感谢。

  • 问题内容: 就像标题所说的那样,我对Eclipse JVM启动器有问题。昨晚,一切正常,据我所知,此后我的电脑上没有任何变化。但是,我今天早上醒来,发现当我在Eclipse中运行任何项目时,我都会收到此错误: 我已经验证了 Path 变量()的完整性,现在,您可能会注意到,我的jdk的版本为65。我的JRE和Java安装也是如此。我不明白为什么eclipse使用jre60。我还检查了首选项,并且也

  • 正如标题所说,我对EclipseJVM启动器有一个问题。昨晚,一切都很好,据我所知,从那时起,我的电脑就没有任何变化。然而,我今天早上醒来发现,当我在eclipse中运行任何项目时,我收到了以下错误: 我已经验证了Path变量的完整性()现在,您可能会注意到,我的jdk版本是65。我的JRE和java安装也是如此。我不明白eclipse为什么要使用jre 60。我还检查了首选项,并更改了jre版本