使用Ant运行Android JUnit测试:ClassNotFoundException:org.junit.Test

时间:2013-09-10 12:11:34

标签: java android ant junit junit3

我正在尝试为使用Ant运行的Android应用程序获取JUnit测试。 使用Eclipse时,没有问题,所有都是编译的,可以毫无问题地运行。

目前我收到org.junit.Test的ClassNotFoundException。

我正在运行以下命令

ant clean debug - success
ant uninstall - success
ant installt - success
ant test - failure

错误日志:

test:
     [echo] Running tests ...
     [exec] INSTRUMENTATION_RESULT: shortMsg=java.lang.ClassNotFoundException
     [exec] INSTRUMENTATION_RESULT: longMsg=java.lang.ClassNotFoundException: org.junit.Test
     [exec] INSTRUMENTATION_CODE: 0

我想,它错过了junit.jar文件。我将它添加到我的ANT_HOME / lib目录中,但它没有任何效果。 ant-junit.jar库已经在“ANT_HOME / lib”中,我不需要复制它。

我还尝试将其添加到我的测试项目的类路径中,并将其标记为要导出。同样在这种情况下,结果保持不变。

我还让eclipse生成一个build.xml,并将其与android update project生成的文件合并。它没有任何区别,我收到同样的错误。

我确信我在这里很容易丢失一些东西。如果需要进一步的配置细节,我很乐意提供它们。我感谢您的帮助。

的build.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project name="FSTest" default="help">
    <property file="local.properties" />
    <property file="ant.properties" />
    <property environment="env" />
    <condition property="sdk.dir" value="${env.ANDROID_HOME}">
        <isset property="env.ANDROID_HOME" />
    </condition>
    <loadproperties srcFile="project.properties" />
    <fail
            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
            unless="sdk.dir"
    />
    <import file="custom_rules.xml" optional="true" />
    <import file="${sdk.dir}/tools/ant/build.xml" />   
</project>

ant.properties:

tested.project.dir=../FS
external.libs.dir=libs

project.properties:

target=android-11

2 个答案:

答案 0 :(得分:1)

问题出在我的build.xml文件中。我根据这里给出的例子修改了它:http://www.vogella.com/articles/ApacheAnt/article.html然后它起作用了。

这些线条产生了差异:

  <path id="junit.class.path">
    <pathelement location="libs/junit.jar" />
    <pathelement location="${build.dir}" />
  </path>

答案 1 :(得分:0)

JUnit任务页面列出了几种可以使JUnit jar可用于Ant的方法:

http://ant.apache.org/manual/Tasks/junit.html

特别是,选项1需要将“junit.jar”和“ant-junit.jar”添加到“ANT_HOME / lib”。那里列出的5个选项中的任何一个都应该可以正常工作。