所以,我正在尝试建立一个包含多个项目的 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 的构建路径中有框架,所以我认为不是这样。但是当一切都在 TestProject 中而不是在两个项目之间划分时,我的 JUnit 测试运行良好。
谢谢你尽你所能的帮助!
确切的例外:
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