我有一个使用 Eclipse 创建的示例 Android 应用程序,它有一个 Activity。我运行了这个命令来为这个项目构建 ant 构建文件:
android create project --target 8 --name SampleApp --path ./SampleApp --activity MainActivity --package com.example.sampleapp
运行“ant debug”成功构建项目并创建 apk 文件:
-post-build:
debug:
BUILD SUCCESSFUL
Total time: 1 second
现在,我想创建一个 Android 测试项目。我运行这个命令:
android create test-project -m ../SampleApp -n SampleAppTest -p SampleAppTest
这成功地创建了包含构建文件的 SampleAppTest 目录。我有一个类,src/com/example/sampleapp/MainActivityTest.java:
package com.example.sampleapp;
import android.test.ActivityInstrumentationTestCase2;
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
public MainActivityTest() {
super("com.example.sampleapp", MainActivity.class);
}
}
我想建立这个项目。在这里找到的教程http://developer.android.com/tools/testing/testing_otheride.html#RunTestsAnt它说我应该能够做“蚂蚁运行测试”。不幸的是,这个目标不存在:
$ ant run-tests
Buildfile: /Users/cmuraru/Work/androidtest/SampleAppTest/build.xml
BUILD FAILED
Target "run-tests" does not exist in the project "SampleAppTest".
Total time: 0 seconds
如果我尝试“ant debug”,我会在编译时收到错误消息,指出无法找到 MainActivity 类(来自 SampleApp)。
-compile:
[javac] Compiling 2 source files to /Users/cmuraru/Work/androidtest/build/test/classes
[javac] /Users/cmuraru/Work/androidtest/SampleAppTest/src/com/example/sampleapp/MainActivityTest.java:15: cannot find symbol
[javac] symbol: class MainActivity
[javac] public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
[javac] ^
[javac] /Users/cmuraru/Work/androidtest/SampleAppTest/src/com/example/sampleapp/MainActivityTest.java:18: cannot find symbol
[javac] symbol : class MainActivity
[javac] location: class com.example.sampleapp.MainActivityTest
[javac] super("com.example.sampleapp", MainActivity.class);
[javac] ^
[javac] 2 errors
BUILD FAILED
/Users/cmuraru/Work/android-sdk-macosx/tools/ant/build.xml:705: The following error occurred while executing this line:
/Users/cmuraru/Work/android-sdk-macosx/tools/ant/build.xml:718: Compile failed; see the compiler error output for details.
Total time: 1 second
尝试“ant test”时,它也失败了:
test:
[echo] Running tests ...
[exec] INSTRUMENTATION_STATUS: id=ActivityManagerService
[exec] INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.example.sampleapp.tests/android.test.InstrumentationTestRunner}
[exec] INSTRUMENTATION_STATUS_CODE: -1
[exec] android.util.AndroidException: INSTRUMENTATION_FAILED: com.example.sampleapp.tests/android.test.InstrumentationTestRunner
[exec] at com.android.commands.am.Am.runInstrument(Am.java:616)
[exec] at com.android.commands.am.Am.run(Am.java:118)
[exec] at com.android.commands.am.Am.main(Am.java:81)
[exec] at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
[exec] at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:237)
[exec] at dalvik.system.NativeStart.main(Native Method)
我在这里错过了什么/做错了什么?任何帮助都将不胜感激。