当前位置: 首页 > 面试题库 >

尝试在Eclipse中以调试模式运行ANT JUnit目标

孔星宇
2023-03-14
问题内容

这是我的ANT JUnit目标

<target name="test" depends="compile" >
    <junit failureProperty="test.failure" >

        <jvmarg value="-Xdebug" />
        <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432" />

        <classpath>
            <pathelement path="${basedir}\..\Core\lib\junit-4.10.jar"/>
            <pathelement path="${basedir}\..\Suggestion\lib\ssce.jar"/>
            <pathelement path="C:\Java\javamail-1.4.1\mail.jar"/>
            <pathelement path="C:\Java\commons-net-2.0\commons-net-ftp-2.0.jar"/>
            <pathelement path="${basedir}\WebContent\WEB-INF\lib\gson-2.2.1.jar"/>
            <pathelement path="${tomcatLibs}\servlet-api.jar"/>
        </classpath>
        <classpath>
            <pathelement path="${build}"/>
        </classpath>
        <formatter type="brief" usefile="false" />          
        <test name="com.server.junit.ServerTestSuite" />
        <test name="com.junit.DictionaryTestSuite" />   
        <test name="com.util.junit.SuggestionTestSuite" />              
    </junit>

    <fail message="Unit test failed" if="test.failure"/>
</target>

如果通过Eclipse运行,我的单元测试可以通过,但是如果我通过ANT对其进行洗衣,则单元测试将失败。我希望它在单元测试的中断点停止。从文档中我知道我需要添加这些jvmarg,但是无法使其停止,因此显然我没有将它们放在正确的位置。另外,我认为端口不正确,但是应该使用哪个端口?通过Eclipse调试JUnit时,我不必设置任何调试端口,它可以正常工作


问题答案:

您需要忘记片刻,您可以在Eclipse中运行JUnit测试和ANT目标。您需要调试一个恰好具有主类org.apache.tools.ant.Main并且可以ant从命令行启动的Java应用程序。

现在有两个选择:您可以创建一个启动配置来调用,org.apache.tools.ant.Main但是启动配置非常复杂(您将必须复制ant脚本在启动时所做的所有操作)。

另一种选择是ant正确配置。就您而言,测试在ant流程中运行,但是我不知道传递-Xdebug给Ant本身的简单方法。因此,您必须在新的过程中运行测试。将此添加到junit任务:

<junit fork="yes" forkmode="once" ...>

jvmarg否则,参数将被忽略。

下一步是在Eclipse中创建调试配置。本文详细解释了这一点。对于您来说,只有“结论”之前的最后一部分很重要。



 类似资料:
  • 问题内容: 由于各种原因,我的项目只能作为最终的和打包的JAR运行(在组装时会发生一些魔术),因此我将其作为Eclipse中的外部工具运行。 我所缺少的是调试功能。有什么办法可以在Eclipse中以调试模式运行外部工具? 问题答案: 您可以连接到远程JVM(如果已在调试模式下对其进行了初始化)。 也就是说,在远程应用程序启动期间,您应该将参数传递给JVM,类似于以下内容: 然后,可以使用“调试配置

  • 问题内容: 即使我单击常规的“运行”按钮,Eclipse始终以调试模式启动我的应用程序。 有任何想法吗? 问题答案: 我发现必须重新启动Xoom才能使其再次正常运行。

  • 我试图在调试模式下启动我的android应用程序,但每次我检查它说这是错误的。更进一步,在buildtypes中定义的buildconfigField甚至不会显示在BuildConfig中。 这是我的gradle文件: 因此,在Android Studio中,我为我的应用程序选择了build Variant“debug”,但当我在应用程序中点击一个断点并检查的值时,无法解析字段,并且无法解析

  • 我有一个Java的web应用程序项目,使用Maven、Spring、Tomcat等。我使用Eclipse火星,我可以导入项目,但我不能在Eclipse下运行它,因为有些插件我找不到。但是我可以用命令编译项目,我可以用命令运行我的项目。我想在调试模式下运行项目,但我不知道如何从命令提示符以调试模式运行项目。我知道有一个mvnDebug命令,但是如果我在Eclipse中的源代码中的任何地方(自然是在J

  • 最近我从旧的蝗虫版本(0.14.2)切换到1.3.1。以前,我可以使用命令WebsiteUser().run()在调试模式下运行,它会在所有断点上停止。 当我尝试使用相同的命令运行新版本时,会出现下一个错误: 文件“/home/user/PycharmProjects/my_test/venv/lib/python3.7/site packages/hocust/user/users.py”,第2

  • 问题内容: 我最近从log4j切换到logback,想知道是否有一种简单的方法可以在调试模式下运行logback,类似于log4j的属性。我需要看看它在哪里接我。 该文档提到使用a 打印出回传的内部状态,但这需要更改代码。 问题答案: [编辑] 此问题已在Logback 1.0.4中修复。现在,您可以用来启用回退设置的调试。 -旧答案- 不幸的是,无法通过System属性启用调试。你必须使用的。请