FragmentActivity Junit的测试 [英] FragmentActivity Junit Testing
问题描述
我用片段
Android的兼容包,使用 Android的支持 - v4.jar
。但我不能做这样的JUnit测试。
Me used Fragment
of Android Compatibility Package, using the android-support-v4.jar
. But I can't do the JUnit test on this.
我的主 FragmentActivity
类被声明如下:
public class MyActivityClass extends FragmentActivity{
...............
}
然后在我的测试项目
Then in my test project
public class MyActivityClassTest extends ActivityInstrumentationTestCase2<MyActivityClass> {
public MyActivityClassTest() {
super("com.android.myproject", MyActivityClass.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
...................
}
public void testPreconditions() {
.................
}
public void testNotNull(){
................
}
}
但是当我运行的 Android的JUnit测试
制作 FailedToCreateTests [亚军:Junit3]
故障跟踪
But when I run as Android JUnit Test
produce FailedToCreateTests[Runner:Junit3]
Failure Trace
java.lang.RuntimeException: Exception during suite construction
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(TestSuiteBuilder.java:239)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
Caused by: java.lang.reflect.InvocationTargetException
at com.android.myproject.test.MyActivityClassTest.<init>(MyActivityClassTest.java:28)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
at android.test.suitebuilder.TestMethod.instantiateTest(TestMethod.java:87)
at android.test.suitebuilder.TestMethod.createTest(TestMethod.java:73)
at android.test.suitebuilder.TestSuiteBuilder.addTest(TestSuiteBuilder.java:263)
at android.test.suitebuilder.TestSuiteBuilder.build(TestSuiteBuilder.java:185)
at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:336)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3982)
at android.app.ActivityThread.access$2900(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1901)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoClassDefFoundError: com.android.myproject.MyActivityClass
... 19 more
当我改变了 MyActivityClass
来扩展活动
它能正常工作(MyActivityClass延伸活动
)
我用同样的 Android的支持 - v4.jar
在我的测试和主体工程
When I changed MyActivityClass
to extends Activity
it worked fine (MyActivityClass extends Activity
)
Me used the same android-support-v4.jar
in my both test and main project
推荐答案
我找到了解决办法
问题是
Caused by: java.lang.NoClassDefFoundError: com.android.myproject.MyActivityClass
它找不到类路径,即使我是指同一个jar在两个项目(我也尝试过使用单独的JAR两个项目)
It cannot find the class path even though I refer the same jar in both projects ( I also tried by using separate jar for both the project )
现在,我创造了我的测试环境在同一个项目,然后它的工作
Now, I created my testing environment in the same project, then it worked
在我的的AndroidManifest.xml
<manifest...>
<!-- For doing JUnit test, Instrumentation Start (remove later) -->
<instrumentation
android:targetPackage="com.pe.android.isccasinos"
android:name="android.test.InstrumentationTestRunner" />
<!-- For doing JUnit test, Instrumentation End (remove later) -->
<application ...>
................
<!-- For doing JUnit test, add library starting (remove later) -->
<uses-library
android:name="android.test.runner" />
<!-- For doing JUnit test, add library ending (remove later) -->
</application>
<manifest>
然后我说我的测试类在我的特殊包测试
Then I added my Testing class in my special package for testing
extends ActivityInstrumentationTestCase2<fragmentActivity>
现在一切正常:)
这篇关于FragmentActivity Junit的测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!