所以,我正在尝试建立一个包含多个项目的JUnit测试套件。我有我的主项目,我称之为App,需要进行测试。最初,我还有一个名为AndroidTestProject的第二个项目,它有几个包,以便在应用程序上运行JUnit测试。这个项目有几个src包:
test.app.perf
test.app.sanity
test.app.base
test.app.fact
test.app.dev
test.app.util
为了使事情变得更清洁,我想做的是为基础包创建一个名为framework的第三个项目。我的层次结构将是:
App
various src packages
Framework
test.app.base
test.app.fact
test.app.dev
test.app.util
TestProject
test.app.perf
test.app.sanity
然而,当我完成这一切时,一切都很好,只是在尝试在sanity包中运行测试时我得到了一个RunTime异常。 Eclipse无法在sanity包中找到任何java类,即使它们存在并且我正在尝试运行它。我在某个地方弄乱了依赖吗?
作为参考,我在TestProject的构建路径中有框架,所以我认为不是这样。但是我的JUnit测试运行正常,因为一切都在TestProject中,而不是在两个项目之间分配。
感谢您提供的任何帮助!
确切的例外:
07-08 15:33:28.309: E/AndroidRuntime(30276): FATAL EXCEPTION: main
07-08 15:33:28.309: E/AndroidRuntime(30276): java.lang.RuntimeException: Exception thrown in onCreate() of ComponentInfo{test/android.test.InstrumentationTestRunner}: java.lang.RuntimeException: Could not find test class. Class: test.app.sanity.Tests
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4058)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.app.ActivityThread.access$1300(ActivityThread.java:127)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1219)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.os.Handler.dispatchMessage(Handler.java:99)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.os.Looper.loop(Looper.java:137)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.app.ActivityThread.main(ActivityThread.java:4558)
07-08 15:33:28.309: E/AndroidRuntime(30276): at java.lang.reflect.Method.invokeNative(Native Method)
07-08 15:33:28.309: E/AndroidRuntime(30276): at java.lang.reflect.Method.invoke(Method.java:511)
07-08 15:33:28.309: E/AndroidRuntime(30276): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-08 15:33:28.309: E/AndroidRuntime(30276): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-08 15:33:28.309: E/AndroidRuntime(30276): at dalvik.system.NativeStart.main(Native Method)
07-08 15:33:28.309: E/AndroidRuntime(30276): Caused by: java.lang.RuntimeException: Could not find test class. Class: test.app.sanity.Tests
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.test.AndroidTestRunner.runFailed(AndroidTestRunner.java:233)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.test.AndroidTestRunner.loadTestClass(AndroidTestRunner.java:87)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.test.AndroidTestRunner.setTestClassName(AndroidTestRunner.java:48)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.test.suitebuilder.TestSuiteBuilder.addTestClassByName(TestSuiteBuilder.java:80)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.test.InstrumentationTestRunner.parseTestClass(InstrumentationTestRunner.java:426)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.test.InstrumentationTestRunner.parseTestClasses(InstrumentationTestRunner.java:407)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:362)
07-08 15:33:28.309: E/AndroidRuntime(30276): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4055)
07-08 15:33:28.309: E/AndroidRuntime(30276): ... 10 more