【问题标题】:Testing with Ant - Cannot test files in subdirectories使用 Ant 进行测试 - 无法测试子目录中的文件
【发布时间】:2013-02-01 14:32:28
【问题描述】:

我在 java 中有一个 android 应用程序。我想使用带有 ant 的 xml 脚本对其进行测试。现在我们有几个包和一个用于源文件和测试文件的标准目录结构。 有一个“测试”文件夹(所有测试代码的根目录),其中有 1 个文件,比如 A.java 和一些子文件夹,这些子文件夹又包含一些测试文件或子子文件夹。只有文件 A.java 得到测试,其余的没有测试。如果我将 xml 脚本中的目录路径从“tests”更改为“tests/ui”,则文件夹“ui”中的测试文件无法测试,并且出现一些错误 - 当我签出文件时出现 Class Not Found Error我存储测试输出的“test-result”文件夹。

我已在 id = "test.classpath" 的路径中包含编译代码的父目录和所需的外部 jar。我认为我应该每个 .class 类型的文件而不是父文件夹的路径。

代码是:

<target name="test-run" description="Run Test">
     <delete dir = "test_result" />
     <mkdir dir = "test_result" />
     <junit printsummary="yes" haltonfailure="yes" showoutput="yes" >
        <classpath refid="test.classpath"/>
        <batchtest fork="yes" todir="test_result">
            <formatter type="xml"/>
            <fileset dir="tests" includes="**/*" />
        </batchtest>
     </junit>
 </target>

您能否解释一下假设通用文件结构如何实现我的动机。

编辑:

以下是上面xml中使用的路径,其中文件夹out包含idea ide生成的源文件和测试文件的.class文件:

  <path id="test.classpath">
    <pathelement path="testlibs/jmockit.jar"/>
    <pathelement path="testlibs/jmockit-coverage.jar"/>
    <pathelement path="testlibs/jmockit-coverage-htmlfull.jar"/>
    <pathelement path="/opt/idea-IU-117.418/lib/junit-4.10.jar"/>
    <pathelement path="out"/>
  </path>

【问题讨论】:

  • 你也可以发布 test.classpath 吗?
  • 我已经编辑了任务以包含它。
  • 好的,我的第一次测试失败了,我有 haltonfailure="yes".. 我的错.. 感谢您的帮助

标签: java android unit-testing ant


【解决方案1】:

尝试将fileset元素更改为:

<fileset dir="tests" includes="**/*.java" />

【讨论】:

  • 谢谢,但这是我尝试的第一件事.. 然后由于测试文件夹中的所有文件都是 .java,我将其删除。
  • 另外,我的问题的第二部分是关于找不到类的问题。有什么想法吗?
  • 你的意思是有 ${test.classpath} 吗?
  • no.. 我没有将它定义为属性.. 它只是一个变量名.. 从我读到的关于用 ant 进行测试的来源中使用..
猜你喜欢
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多